
# FunctionGraph如何实现域名解析？
当前FunctionGraph函数无法直接解析华为云解析服务（DNS）的内网域名，当需要在函数中解析DNS域名，可参考本章节操作，通过调用DNS服务的接口，实现解析功能。
#### FunctionGraph的事件函数解析DNS内网域名
您需要提前创建VPC和DNS内网域名，再按照如下步骤操作。
1. 内网域名关联VPC并添加记录集 
   登录云解析服务控制台，将内网域名关联VPC。
   图1关联VPC   
   ![](https://support.huaweicloud.com/functiongraph_faq/zh-cn_image_0000002172552265.png "点击放大")
   点击进入域名并添加记录集，类型选择A。
   图2添加记录集   
   ![](https://support.huaweicloud.com/functiongraph_faq/zh-cn_image_0000002137153018.png "点击放大")
   
   
2. 创建函数
   
   创建一个运行时语言为Python 2.7版本的函数，代码示例如下：
   ```
   # -*- coding:utf-8 -*-
   import json
   import os
   def handler(event, context):
        os.system("curl -iv www.test.com")
   ```
   
   
3. 为函数配置DNS与VPC委托
   
   登录[统一身份认证服务（IAM）控制台](https://console.huaweicloud.com/iam/)，为函数工作流服务配置"DNS ReadOnlyAccess"以及"VPC Administrator"权限的委托。详细操作步骤可参考[配置函数委托](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0920.html)。
   图3创建DNS与VPC委托   
   ![](https://support.huaweicloud.com/functiongraph_faq/zh-cn_image_0000002172552293.png "点击放大")
   ![](https://support.huaweicloud.com/functiongraph_faq/public_sys-resources/note_3.0-zh-cn.png)
   在进行解析域名时，函数需要查看云解析服务资源，所以必须要配置DNS资源数据读取权限，否则在执行函数时，会提示如下错误，获取不成功。
   ```
   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.
   ```
   
   
4. 配置函数 
   进入[2]创建的函数详情页面，在"设置"页签下，执行以下配置。
   1. "权限"选择[3]创建的委托。
   
   2. 打开VPC访问开关，配置上述操作中创建的VPC、子网、域名，详情参考[图4]。
   
   
   图4配置函数   
   ![](https://support.huaweicloud.com/functiongraph_faq/zh-cn_image_0000002137153050.png "点击放大")
   
   
5. 验证结果 
   保存后执行函数时，就能在代码中解析该域名中配置的所有IPV4类型的域名。
   图5执行函数   
   ![](https://support.huaweicloud.com/functiongraph_faq/zh-cn_image_0000002172552345.png "点击放大")
   
   
![](https://support.huaweicloud.com/functiongraph_faq/public_sys-resources/note_3.0-zh-cn.png)
配置完成VPC域名解析后，在DNS云解析服务中修改域名对应的IP，将在10min后生效。
#### FunctionGraph的容器镜像函数解析DNS内网域名
1. 已获取内网域名和域名ID。 以添加解析记录的域名为例，获取方法如下：
   1. 登录云解析服务控制台。
   
   2. 获取域名ID。 单击"![](https://support.huaweicloud.com/functiongraph_faq/zh-cn_image_0000002136435890.gif)"，在搜索框中勾选"域名"，获取域名ID。
      
   
   3. 获取对应解析记录的域名。 单击域名进入记录集列表，选择指定记录集。
      
    

2. 编写解析逻辑。 使用[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DNS/doc?api=ListRecordSetsByZone)，调试[查询单个Zone下Record Set列表](https://support.huaweicloud.com/api-dns/dns_api_64004.html)接口。
   - 参数zone_id即上述步骤中获取的"域名ID"，单击"调试"，响应体中即可获取内网域名对应的IP。
     图6获取内网域名对应的IP   
     ![](https://support.huaweicloud.com/functiongraph_faq/zh-cn_image_0000002136594022.png "点击放大") 
   
   - 切换到代码示例可以获取完整的代码，如需查看相关依赖请参见SDK信息。
     图7获取相关代码   
     ![](https://support.huaweicloud.com/functiongraph_faq/zh-cn_image_0000002171715201.png "点击放大") 
    
 
