Function Computeのデフォルトの送信IPアドレスは動的であり、固定CIDRブロックに属していません。 Function Computeがデータベース、WeChatミニプログラム、またはその他のサードパーティサービスにアクセスする必要がある場合は、IPアドレスホワイトリストを設定する必要があります。 Function Computeが提供する静的IPアドレス機能を使用して、静的IPアドレスを設定し、そのIPアドレスをホワイトリストに追加できます。 このトピックでは、Function Computeコンソールでアウトバウンド静的パブリックIPアドレスを設定する方法について説明します。
使用上の注意
静的パブリックIPアドレスを使用するには、仮想プライベートクラウド (VPC) にインターネットNATゲートウェイが必要です。 具体的には、インターネットNATゲートウェイを作成し、EIP (elastic IP address) を関連付けて、NATゲートウェイの送信元ネットワークアドレス変換 (SNAT) エントリを作成する必要があります。 これにより、VPC接続インスタンスはEIPを使用してインターネットにアクセスできます。 受信側から取得できるクライアントIPアドレスは、NATゲートウェイに関連付けられているEIPです。
NAT GatewayとEIPは、リージョンの特定のゾーンでのみ使用できます。 購入したNATゲートウェイとEIPがFunction Computeの関数とは異なるゾーンにある場合、vSwitchを使用してゾーン間のインターネット接続を確立する必要があります。 詳細については、「Function Computeが利用可能なゾーン」をご参照ください。
EIPは、同じリージョン内の関数間で共有できます。
Resource Access Management (RAM) ユーザーに静的IPアドレス機能を使用する場合は、Alibaba Cloudアカウントを使用してRAMコンソールにログインし、RAMユーザーに
AliyunECSFullAccess
、AliyunVPCFullAccess
、AliyunEIPFullAccess
、AliyunRAMFullAccess、AliyunNATMFullAccess
をアタッチします。
課金
静的パブリックIPアドレスを設定すると、NATゲートウェイとEIPが作成され、料金が発生する可能性があります。 詳細については、「インターネットNATゲートウェイの課金」および「課金の概要」をご参照ください。
静的パブリックIPアドレスを初めて設定する
前提条件
ネットワークが設定され、VPCリソースにアクセスするために必要な権限が付与されます。 詳細については、「ネットワーク設定とロールの構成」をご参照ください。
ネットワーク設定で、[VPCへのアクセス] パラメーターが [はい] に設定されています。 詳細については、「ネットワーク設定の構成」をご参照ください。
手順
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[関数] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [関数] ページで、管理する関数をクリックします。
関数の詳細ページで、設定タブをクリックします。
左側のナビゲーションウィンドウで、[ネットワーク] 、[変更] の順にクリックします。 [ネットワーク] パネルで、[静的パブリックIPアドレス] パラメーターを [はい] に設定し、[デフォルトNICのインターネットへのアクセスを許可] パラメーターを [いいえ] に設定します。
説明機能が期待どおりにインターネットにアクセスできるようにするには、[デフォルトNICのインターネットへのアクセスを許可] を [はい] に設定し、静的パブリックIPアドレス設定が有効になるのを待ってから、[デフォルトNICのインターネットへのアクセスを許可] を [いいえ] に設定します。
[OK] をクリックします。 [静的パブリックIPアドレス設定] ダイアログボックスで、メッセージを読み、チェックボックスをオンにして [OK] をクリックします。
ネットワーク設定が完了するまでに1〜2分かかります。 その後、ネットワーク設定を表示できます。 VPCコンソールに移動して、関連付けられている、または作成されたリソースに関する情報を表示することもできます。
設定の確認
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コンソールで [デフォルトNICのインターネットへのアクセスを許可] パラメーターを [はい] に設定し、VPCコンソールに移動してVPCに関連付けられているすべてのNATゲートウェイを削除します。