自定义DNS功能适用于加速站点访问等场景,本文介绍如何在函数计算控制台为函数配置自定义DNS。

背景信息

resolv.conf文件为系统配置文件,您配置自定义DNS解析属性后,原有resolv.conf将被覆盖。关于resolv.conf文件的规范,您可以在Linux系统执行man 5 resolver查看,如果提示没有man page,请先根据您使用的发行版本进行安装。例如,在CentOS下可以执行yum install man-pages man-db进行安装。或者请参见Linux manual page

使用限制

自定义DNS功能仅支持由函数计算官方提供的Runtime。

前提条件

创建函数

配置DNS

说明 如需使用函数计算默认的DNS服务器,请在Name Servers中添加默认IP地址100.100.2.136100.100.2.138
  1. 登录函数计算控制台
  2. 在左侧导航栏,单击服务及函数
  3. 在顶部菜单栏,选择地域。
  4. 服务列表页面,单击目标服务。
  5. 函数管理页面,单击目标函数操作列的配置
  6. 在编辑函数配置页面下方的DNS 配置区域,按需配置以下参数,然后单击保存
    dns-edit
    参数 说明 示例值
    Name Servers DNS服务器的IP地址。支持添加多个DNS服务器的IP地址。
    • 223.5.5.5
    • 223.6.6.6
    搜索域 DNS搜索域。支持添加多个搜索域。当访问的域名不能被DNS解析时,搜索域将被追加到无法被解析的域名后重新解析。 mydomain.com
    DNS 选项 resolv.conf文件中的配置项。每一项对应一个键值对,格式为key:value,其中键为必填。 attempts:1
  7. 验证配置的DNS解析属性是否生效。
    1. 在函数详情页面,单击函数代码页签。
    2. 在代码编辑器中编写代码,单击部署代码,然后单击测试函数
      代码示例(Python 3)如下:
      # -*- coding: utf-8 -*-
      import logging
      import subprocess
      
      def handler(event, context):
        logger = logging.getLogger()
        f = open('/etc/resolv.conf')
        logger.info("".join(f.readlines()))
        f.close()
        output = subprocess.check_output(["ping", "-c", "1", "www.aliyun.com"])
        return output
    3. 函数代码页签,查看执行结果。在返回结果区域,查看resolv.conf生成的对应的内容,在日志输出区域,查看返回的域名的IP地址。
      result