このトピックでは、Function ComputeからVPC経由でAPI Gatewayにアクセスする方法について説明します。
概要
API GatewayをFunction Computeと統合して、サーバーレスアーキテクチャを構築できます。 Function Computeを使用する場合、API Gatewayで公開されたAPIを呼び出す必要がある場合があります。 セキュリティ上の理由から、Function Computeを使用する場合は、内部ネットワーク経由でAPI Gatewayにアクセスすることを推奨します。 このトピックでは、次のシナリオで、内部ネットワークを介したAPI Gatewayへのアクセスについて説明します。
シナリオ1: API GatewayとFunction Computeが同じリージョンにデプロイされています。
シナリオ2: API GatewayとFunction Computeは異なるリージョンにデプロイされています。
2つのシナリオでは、次の設定原則に従います。
API GatewayにアクセスするようにVPCを設定します。 詳細については、「VPC経由のアクセスAPIゲートウェイ」をご参照ください。
Function ComputeにアクセスするようにVPCを設定します。 詳細については、「ネットワーク設定の構成」をご参照ください。
シナリオ 1
次の図のようなアーキテクチャを構築します。

中国 (上海) リージョンには、vpc-api-accessとvpc-backend-1という名前の2つのvpcが作成されます。
中国 (上海) リージョンに1つの専用API Gatewayインスタンスが作成されます。
vpc-backend-1では、Elastic Compute Service (ECS) インスタンスがAPI Gatewayのバックエンドサービスとして作成されます。 このECSインスタンスは、HTTP経由でAPIを提供します。 HTTPサービスアドレスはhttp:// localhost:8080/web/cloudapiです。 セキュリティグループは、API GatewayがこのECSインスタンスにアクセスできるように設定されています。
バックエンドサービスタイプとしてVPCを使用してAPIを作成します。
詳細については、「VPCのリソースをAPI操作のバックエンドサービスとして使用する」をご参照ください。 以下の事項にご注意ください。
VPC権限を作成します。 作成されたVPC権限は、[VPCアクセスリスト] ページに表示されます。

バックエンドサービスタイプをVPCに設定します。 その後のAPI呼び出しテストを容易にするため、セキュリティ認証を認証なしに設定します。


設定を保存し、APIを本番環境に公開します。
VPC経由のAPI Gatewayへのアクセス権限を設定します。
API Gatewayコンソールの [インスタンスリストページ] の [専用インスタンス (VPC)] セクションで、[クライアントVPC] フィールドの右側にある [VPCにバインド] をクリックします。 表示されるダイアログボックスで、[vpc ID] ドロップダウンリストからVpc-api-accessのIdを選択し、[確認] をクリックします。 vpc-API-access経由でapi Gatewayにアクセスできます。

APIグループのVPCサブドメインを有効にします。
[グループの詳細] ページで、[VPCドメイン名] フィールドの右側にある [VPC第2レベルドメインの有効化] をクリックします。 VPC第2レベルドメインの有効化メッセージで、確認をクリックします。 VPCの第2レベルのドメイン名がこのAPIグループに割り当てられます。 このドメイン名を使用して、このAPIグループのAPIを呼び出すことができます。

APIグループのインターネットアクセスはデフォルトで有効になっています。 [インターネット経由のアクセスを無効にする] をクリックして、ビジネス要件に基づいてインターネットアクセスを無効にします。 インターネットアクセスが無効になっている場合、API Gatewayコンソールでオンラインデバッグを実行できません。
関数を作成します。
Function Computeで、アプリケーションを作成し、Python環境で実行される関数を作成します。 この関数の内容を次の図に示します。

この関数では、curlコマンドのみを実行して、VPCサブドメインのAPIを呼び出します。 curlコマンドを実行してVPCサブドメインにバインドされたAPIを呼び出すと、API呼び出しは失敗します。
Function Computeに接続するためにvpc-api-accessでvSwitchを作成します。

Function Computeコンソールにログインし、次の設定を実行します。 詳細については、「ネットワーク設定の構成」をご参照ください。
[Configure Service] ページの [Network Config] セクションで、[vpc] ドロップダウンリストから [VPC-api-access] を選択し、[Vswitches] ドロップダウンリストから作成したvSwitchを選択します。

[Configure Service] ページの [Role Config] セクションで、[role Operation] ドロップダウンリストから [Create new Role] を選択し、[System Policies] ドロップダウンリストから [AliyunECSNetworkInterfaceManagementAccess] を選択し、[Authorize] をクリックし、[Submit] をクリックします。

テストの関数を実行します。
この機能を実行すると、このVPCサブドメインを使用して、API Gatewayで公開されているAPIにアクセスできます。

シナリオ 2
次の図のようなアーキテクチャを構築します。

中国 (張家口-北京冬季オリンピック) リージョンでは、API呼び出しを開始するためにFunction Compute用のアプリケーションが作成されます。 VPC-fc-accessという名前のvpcが作成されます。 Function Computeは、このVPCを介してCloud Enterprise Network (CEN) に接続できます。
中国 (上海) リージョンでは、専用API GatewayインスタンスとVPC-api-accessという名前のvpcが接続されています。 API Gatewayは、このVPCを介してCENに接続できます。
中国 (上海) リージョンでは、vpc-backend-1という名前の別のVPCが作成されます。 ECSインスタンスがAPI Gatewayのバックエンドサービスとして作成されます。 このECSインスタンスは、HTTP経由でAPIを提供します。 HTTPサービスアドレスはhttp:// localhost:8080/web/cloudapiです。 セキュリティグループは、API GatewayがこのECSインスタンスにアクセスできるように設定されています。
CENを作成します。
Function Computeが内部ネットワークを介してapi Gatewayと通信できるように、vpc-API-accessとvpc-fc-accessを相互接続するためのCENを作成します。 CENを設定する方法の詳細については、CENとは何ですか?. CENコンソールにログインし、CENインスタンスを作成します。 vpc-api-accessとvpc-fc-accessをCENインスタンスに関連付けます。

帯域幅を設定します。
CENインスタンス内の通信に使用される帯域幅プランを購入します。 この例では、2 Mbit/sの帯域幅プランが購入されます。 ビジネス要件に基づいて帯域幅プランを購入できます。

CENページの [リージョン接続] タブで、CENインスタンスのリージョンの帯域幅を設定します。 帯域幅プランに基づいて、接続リージョンの各ペアの帯域幅サイズを設定できます。

クロスVPCルートを設定します。
CEN製品チームにチケットを送信して、ルートを設定します。 ResolveAndRouteServiceInCen API操作に必要な設定パラメーターを指定します。 これらのルートにより、中国 (張家口-北京冬季オリンピック) リージョンのAPI GatewayとVPC間の通信が可能になります。
AccessRegionIds.1=cn-zhangjiakou AccessRegionIds.2=cn-shanghai CenId=cen-uggzcthgz7cwsl7prr #The ID of the CEN instance. Host=100.104.255.128/26 #The VPC egress address of the dedicated API Gateway instance. HostRegionId=cn-shanghai HostVpcId=vpc-uf65amr4k3aepd0u4gnxa #The ID of vpc-api-access. API Gateway deployed in the China (Shanghai) region can connect to the CEN over this VPC.
専用API GatewayインスタンスのVPC出力アドレスを取得するには、API Gatewayコンソールの [インスタンス] ページに移動します。

チケットが処理された後、CENコンソールで中国 (上海) および中国 (張家口-北京冬季オリンピック) リージョンに設定されたルートを表示できます。 カスタムルートは、指定した設定パラメーターに基づいて追加されます。
バックエンドサービスタイプとしてVPCを使用してAPIを作成します。
シナリオ1の手順2で説明した操作に従います。
VPC経由のAPI Gatewayへのアクセス権限を設定します。
シナリオ1の手順3で説明した操作に従います。
VPC上のAPIグループのドメイン名を有効にします。
シナリオ1の手順4で説明した操作に従います。
関数を作成します。
中国 (張家口-北京冬季オリンピック) リージョンにデプロイされたFunction Computeインスタンスで、アプリケーションを作成し、Python環境で実行される関数を作成します。 この関数の内容を次の図に示します。

Function ComputeのVPCアクセスを設定します。
vpc-fc-accessでvSwitchを作成します。 次に、Function Computeコンソールにログインし、必要な設定を実行します。 動作は、シナリオ1のステップ6で説明したものと同様である。
テストの関数を実行します。
この機能を実行すると、このVPCサブドメインを使用して、API Gatewayで公開されているAPIにアクセスできます。

制限事項
専用のAPI Gatewayインスタンスのみを使用できます。