How Does FunctionGraph Implement Domain Name Resolution?
FunctionGraph cannot directly resolve private Huawei Cloud DNS domain names. To resolve them, call DNS APIs and perform the following steps.
Resolving a Private DNS Domain Name with an Event Function
Ensure that a VPC and private DNS domain name have been created before performing the following steps:
- Associate a VPC with the private domain name and add record sets.
Log in to the DNS console and associate a VPC with the private domain name.Figure 1 Associating a VPC with the private domain nameClick the domain name, and add a type A record set.Figure 2 Adding a record set
- Create a function.
Create a function whose runtime is Python 2.7. The following is sample code.
# -*- coding:utf-8 -*- import json import os def handler(event, context): os.system("curl -iv www.test.com")
- Configure an agency with DNS and VPC permissions for the function.
Log in to the IAM console, and configure an agency with the DNS ReadOnlyAccess and VPC Administrator permissions for FunctionGraph. For details, see Configuring Agency Permissions.
Figure 3 Creating an agency with DNS and VPC permissionsYou need to configure the permission to read DNS resource data because the function needs to obtain such data when resolving a domain name. Otherwise, the following error message is displayed, indicating that the DNS resource data failed to be obtained.
2020/08/20 10:37:12 GMT+08:00 Start invoke request 'a2f105b4-2e72-4fda-94a5-86d3837e961d', version: latest [GET /v2/zones/{zone_id}/recordsets] failed, response: {"code":"DNS.1802","message":"Policy doesn't allow dns:recordset:list to be performed."} 2020/08/20 10:37:13 GMT+08:00 Finish invoke request 'a2f105b4-2e72-4fda-94a5-86d3837e961d', duration: 1030.072ms, billing duration: 1100ms, memory used: 77.039MB.
- Configure the function.
On the details page of the function created in step 2, click the Configuration tab and configure the following settings:
- Check the execution result.

Changes to the IP addresses corresponding to the VPC domain names you configure will take effect in 10 minutes.
Resolving a Private DNS Domain Name with a Container Image–based Function
- Obtain a private domain name and zone ID.
This procedure uses a domain name with a record set as an example.
- Compile the resolution logic.
Use API Explorer to debug the API used to query record sets in a zone.
- Set zone_id to the zone ID obtained in the preceding step, and click Debug. The IP address of the private domain name is displayed in the response body.
- Switch to the Sample Code tab to obtain the complete code. For details about the dependencies, click View SDK Details.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot