Reviewed-by: Mützel, Andrea <andrea.muetzel@t-systems.com> Co-authored-by: chenjunjie <chenjunjie@huawei.com> Co-committed-by: chenjunjie <chenjunjie@huawei.com>
9.0 KiB
How Does FunctionGraph Implement Domain Name Resolution?
FunctionGraph cannot directly resolve private 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.
Click the domain name, and add a type 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.
You 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:
- For Permissions, select the agency created in step 3.
- Enable VPC access and select the created VPC, subnet, and domain name.
- Check the execution result.
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 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.





