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