Function Computeは、動的出力IPアドレスを提供します。 Function Computeがデータベース、WeChat miniプログラム、またはその他のサードパーティサービスへのアクセスを必要とする場合、IPアドレスホワイトリストを設定する必要があります。 Function Computeが提供する静的IPアドレス機能を使用して、これらのサービスにアクセスし、静的IPアドレスをホワイトリストに追加できます。 このトピックでは、Function Computeコンソールで静的パブリックIPアドレスを割り当てて、関数がインターネットにアクセスできるようにする方法について説明します。
注意事項
静的パブリックIPアドレスを割り当てるには、仮想プライベートクラウド (VPC) にインターネットネットワークアドレス変換 (NAT) ゲートウェイが必要です。 具体的には、インターネットNATゲートウェイを購入し、EIP (elastic IPアドレス) をNATゲートウェイに関連付ける必要があります。 NATゲートウェイの送信元ネットワークアドレス変換 (SNAT) エントリも作成する必要があります。 これにより、VPC接続インスタンスはEIPを使用してインターネットにアクセスできます。 受信側から取得できるクライアントIPアドレスは、NATゲートウェイに関連付けられているEIPです。
NAT GatewayとEIPは、リージョンの特定のゾーンでのみ使用できます。 購入したNATゲートウェイとEIPがFunction Computeのサービスとは異なるゾーンにある場合、vSwitchを使用してゾーン間のインターネット接続を確立する必要があります。 詳細については、「Function Computeが利用可能なゾーン」をご参照ください。
EIPは、同じリージョン内のすべてのサービス間で共有されます。
Resource Access Management (RAM) ユーザーに静的IPアドレス機能を使用させる場合は、RAMコンソールにログインし、RAMユーザーに
AliyunECSFullAccess
、AliyunVPCFullAccess
、AliyunEIPFullAccess
、およびAliyunNATGatewayFullAccess
のポリシーをアタッチします。
課金
静的パブリックIPアドレスを設定すると、NATゲートウェイとEIPが作成され、料金が発生する可能性があります。 詳細については、「インターネットNATゲートウェイの課金」および「課金の概要」をご参照ください。
新しい静的パブリックIPアドレスの設定
前提条件
ネットワークが設定され、関数がVPCリソースにアクセスできるようにするために必要な権限が目的のサービスに付与されます。 詳細については、「ネットワーク設定とロールの構成」をご参照ください。
サービス設定で、[VPCへのアクセス] パラメーターが [はい] に設定されています。 詳細については、「ネットワーク設定の構成」をご参照ください。
手順
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[サービスと機能] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [サービス] ページで目的のサービスを見つけ、[操作] 列の [設定] をクリックします。
では、ネットワーク設定セクションでは、静的パブリックIPアドレスパラメーターをはいと、インターネットへのアクセスパラメーターをいいえ.
説明関数が外部ネットワークにアクセスできるようにするには、まず [インターネットへのアクセス] パラメーターを [はい] に設定することを推奨します。 静的パブリックIPアドレスが有効になったら、[インターネットへのアクセス] パラメーターを [いいえ] に設定します。 これにより、トラフィックの移行を円滑に行うことができる。
[保存] をクリックします。 [静的パブリックIPアドレス設定] ダイアログボックスで、メッセージを読み、チェックボックスをオンにして [OK] をクリックします。
1〜2分後、[サービスの詳細] ページに移動します。 保存したネットワーク設定を表示できます。 VPCコンソールにログインして、関連付けた、またはシステムによって自動的に作成されたインターネットNATゲートウェイを表示することもできます。
設定の確認
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[サービスと機能] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [サービス] ページで、目的のサービスをクリックします。
[関数] ページで、目的の関数の名前をクリックします。 表示される [関数の詳細] ページで、[コード] タブをクリックします。
のコードエディターで、コードタブ、関数コードを書き込みます。
この例では、関数コードはPythonで記述されています。
# -*- coding: utf-8 -*- import logging import requests def handler(event, context): logger = logging.getLogger() try: r = requests.get('https://myip.ipip.net') clientIP = r.content.split()[1] logger.info('Client IP: ' + clientIP) except: r = requests.get('http://ipinfo.io') clientIP = r.json()['ip'] logger.info('Client IP: ' + clientIP) return clientIP
関数コードを記述したら、デプロイそして、テスト機能 をクリックします。
コードが実行された後、応答でクライアントIPアドレスを表示できます。 クライアントIPアドレスは、割り当てられた静的パブリックIPアドレスです。
静的パブリックIPアドレスを追加する
静的パブリックIPアドレスを追加するには、次の手順を実行します。
次のステップ
静的パブリックIPアドレス機能を無効にするか、割り当てられた静的IPアドレスを削除する場合は、Function Computeコンソールのサービス設定で [インターネットへのアクセス] パラメーターを [はい] に設定します。 次に、VPCコンソールに移動し、VPCに関連付けられているすべてのNAT Gatewayを削除します。
トラブルシューティング
Function Computeからデータベースにアクセスするときに、IPアドレスホワイトリストを設定する方法を教えてください。