サイトアクセスの高速化などのシナリオで Custom DNS を使用できます。このトピックでは、Function Compute コンソールで関数の Custom DNS を設定する方法について説明します。
背景情報
resolv.conf ファイルはシステム設定ファイルです。カスタム DNS を設定すると、既存の resolv.conf ファイルは上書きされます。resolv.conf ファイルの仕様は、Linux システムで man 5 resolver コマンドを実行して表示できます。man ページが見つからない場合は、ご利用のディストリビューションに基づいてインストールしてください。詳細については、「Linux マニュアルページ」をご参照ください。
制限事項
カスタム DNS 機能は、カスタムイメージをサポートしていません。
前提条件
関数を作成済みであること (ただし、GPU アクセラレーション関数を除く)。
DNS の設定
Function Compute のデフォルト DNS サーバを使用するには、デフォルトの IP アドレス 100.100.2.136 と 100.100.2.138 をネームサーバーに追加します。
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーでリージョンを選択します。関数 ページで、対象の関数をクリックします。
関数詳細ページで、設定 タブをクリックします。詳細設定 の右側にある 変更 をクリックします。詳細設定 パネルで、DNS セクションを見つけ、次のパラメーターを設定し、デプロイ をクリックします。
パラメーター
説明
例
Name Servers
DNS サーバーの IP アドレスを指定します。複数のアドレスを追加できます。
223.5.5.5
223.6.6.6
Search Domain
DNS 検索ドメインです。複数の検索ドメインを追加できます。ドメイン名の解決に失敗した場合、システムは検索ドメインを追加してクエリを再試行します。
example.com
DNS Options
resolv.conf ファイルの各設定項目は、key:value 形式のキーと値のペアであり、キーは必須です。
attempts:1
カスタム DNS 設定が有効であることを確認します。
関数詳細ページで、コード タブをクリックします。
コードエディタでコードを記述し、デプロイメントコード をクリックし、次に 関数のテスト をクリックします。
サンプルコード (Python 3):
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 アドレスを表示します。