Function Compute は、動的な送信元 IP アドレスを提供します。Function Compute がデータベース、WeChat ミニプログラム、またはその他のサードパーティサービスにアクセスする必要がある場合は、IP アドレスのホワイトリストを設定する必要があります。Function Compute が提供する静的 IP アドレス機能を使用してこれらのサービスにアクセスし、静的 IP アドレスをホワイトリストに追加できます。このトピックでは、Function Compute コンソールで関数がインターネットにアクセスできるように、固定パブリック IP アドレスを割り当てる方法について説明します。
注意事項
固定パブリック IP アドレスを割り当てるには、Virtual Private Cloud (VPC) にインターネット NAT ゲートウェイが必要です。具体的には、インターネット NAT ゲートウェイを購入し、Elastic IP アドレス (EIP) を NAT ゲートウェイに関連付ける必要があります。また、NAT ゲートウェイの SNAT (Source Network Address Translation) エントリを作成する必要もあります。これにより、VPC に接続されたインスタンスは EIP を使用してインターネットにアクセスできます。受信側から取得できるクライアント IP アドレスは、NAT ゲートウェイに関連付けられた EIP です。
NAT ゲートウェイと 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 ゲートウェイを削除します。

