FunctionGraph函数如何解析DNS内网域名?
当前FunctionGraph函数无法直接解析华为云解析服务(DNS)的内网域名,当需要在函数中解析DNS域名,可参考本章节操作,通过调用DNS服务的接口,实现解析功能。
解析DNS内网域名
您需要提前创建VPC和DNS内网域名,再按照如下步骤操作。
- 内网域名关联VPC并添加记录集
登录云解析服务控制台,将内网域名关联VPC。图1 关联VPC
点击进入域名并添加记录集,类型选择A。图2 添加记录集
- 创建函数
创建一个运行时语言为Python 2.7版本的函数,代码示例如下:
# -*- coding:utf-8 -*- import json import os def handler(event, context): os.system("curl -iv www.test.com")
- 为函数配置DNS与VPC委托
在IAM页面,为函数工作流服务配置“DNS ReadOnlyAccess”以及“VPC Administrator”权限的委托。
图3 创建DNS与VPC委托
在进行解析域名时,函数需要查看云解析服务资源,所以必须要配置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.
- 配置函数
进入2创建的函数详情页面,在“设置”页签下,执行以下配置。
- 验证结果
保存后执行函数时,就能在代码中解析该域名中配置的所有IPV4类型的域名。
图5 执行函数
用户配置了VPC域名解析后,如果在DNS云解析服务中修改域名对应的IP,10min后稳定生效。