配置自定义DNS

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

背景信息

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

使用限制

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

前提条件

创建函数

配置DNS

说明

如需使用函数计算默认的DNS服务器,请在Name Servers中添加默认IP地址100.100.2.136100.100.2.138

  1. 登录函数计算控制台,在左侧导航栏,单击函数

  2. 在顶部菜单栏,选择地域,然后在函数页面,单击目标函数。

  3. 在函数配置页面,选择配置页签。

  4. 在左侧导航栏,选择DNS页签,单击编辑,在编辑DNS信息的面板中,按需配置以下参数,然后单击确定

    参数

    说明

    示例值

    Name Servers

    DNS服务器的IP地址。支持添加多个DNS服务器的IP地址。

    • 223.5.5.5

    • 223.6.6.6

    搜索域

    DNS搜索域。支持添加多个搜索域。当访问的域名不能被DNS解析时,搜索域将被追加到无法被解析的域名后重新解析。

    example.com

    DNS 选项

    resolv.conf文件中的配置项。每一项对应一个键值对,格式为key:value,其中键为必填。

    attempts:1

  5. 验证配置的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地址。