自訂DNS功能適用於加速網站訪問等情境,本文介紹如何在Function Compute控制台為函數配置自訂DNS。
背景資訊
resolv.conf檔案為系統設定檔,您配置自訂DNS解析屬性後,原有resolv.conf將被覆蓋。關於resolv.conf檔案的規範,您可以在Linux系統執行man 5 resolver
查看,如果提示沒有man page,請先根據您使用的發行版本進行安裝。更多資訊,請參見Linux manual page。
使用限制
自訂DNS功能僅支援Function Compute官方提供的Runtime和Custom Runtime。
前提條件
配置DNS
說明 如需使用Function Compute預設的DNS伺服器,請在Name Servers中添加預設IP地址100.100.2.136和100.100.2.138。
- 在左側導覽列,單擊服務及函數。
- 在頂部功能表列,選擇地區。
- 在服務列表頁面,單擊目標服務。
- 在函數管理頁面,單擊目標函數操作列的配置。
- 在編輯函數配置頁面下方的DNS 配置地區,按需配置以下參數,然後單擊儲存。
參數 說明 樣本值 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 - 驗證配置的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地址。