自定義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.136和100.100.2.138。
登錄函數計算控制臺,在左側導航欄,單擊函數。
在頂部菜單欄,選擇地域,然后在函數頁面,單擊目標函數。
在函數配置頁面,選擇配置頁簽。
在左側導航欄,選擇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
驗證配置的DNS解析屬性是否生效。
在函數詳情頁面,單擊代碼頁簽。
在代碼編輯器中編寫代碼,單擊部署代碼,然后單擊測試函數。
代碼示例(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
在代碼頁簽,查看執行結果。在返回結果區域,查看resolv.conf生成的對應的內容,在日志輸出區域,查看返回的域名的IP地址。