更新时间:2022-08-11 GMT+08:00

FunctionGraph函数如何解析DNS内网域名?

当前FunctionGraph函数无法直接解析的内网域名,当需要在函数中解析DNS域名,可参考本章节操作,通过调用DNS服务的接口,实现解析功能。

解析DNS内网域名

您需要提前创建VPC和DNS内网域名,再按照如下步骤操作。

  1. 内网域名关联VPC并添加记录集

    登录云解析服务控制台,将内网域名关联VPC。

    点击进入域名并添加记录集,类型选择A。

  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页面,为函数工作流服务配置“DNS ReadOnlyAccess”以及“VPC Administrator”权限的委托。

    在进行解析域名时,函数需要查看云解析服务资源,所以必须要配置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、子网、域名。

  5. 验证结果

    保存后执行函数时,就能在代码中解析该域名中配置的所有IPV4类型的域名。