メニュー
Amazon API Gateway
開発者ガイド

クロスアカウントの Lambda プロキシ統合で API Gateway API をビルドする

AWS Lambda 関数は、API 統合バックエンドとして、別の AWS アカウントから使用できるようになりました。各アカウントは、Amazon API Gateway が利用可能なリージョンのいずれかに設定されます。これにより、複数の API 間で簡単に集中管理して、Lambda バックエンド関数を共有できるようになります。

このセクションでは、Amazon API Gateway コンソールを使用して、クロスアカウントの Lambda プロキシ統合を設定する方法について説明します。

まず、あるアカウントで 例から API Gateway API を構築する からサンプル API を作成します。次に、別のアカウントで Lambda 関数を作成します。最後に、クロスアカウントの Lambda 統合を使用して、2 番目のアカウントで作成した Lambda 関数をサンプル API で使用できるようにします。

API Gateway のクロスアカウントの Lambda 統合用に API を作成する

まず、「例から API Gateway API を構築する」に記載されているように、サンプル API を作成します。

サンプル API を作成するには

  1. API Gateway コンソールにサインインします。

  2. API Gateway の [API] ホームページから、[Create API] (API の作成) を選択します。

  3. [Create new API] (新しい API の作成) で、[Examples API] (サンプル API) を選択します。

  4. [エンドポイントタイプ] で、[Edge optimized] (最適化されたエッジ) を選択します。

  5. [インポート] を選択して、サンプル API を作成します。

別のアカウントで統合用の Lambda 関数を作成する

ここでは、サンプル API 作成時とは異なるアカウントで Lambda 関数を作成します。

別のアカウントで Lambda 関数を作成する

  1. API Gateway API 作成時とは別のアカウントで Lambda コンソールにログインします。

  2. [Create function] を選択します。

  3. [Author from scratch] を選択します。

  4. [Author from scratch] で、次の操作を行います。

    1. [Name] 入力フィールドに関数名を入力します。

    2. [Runtime] ドロップダウンリストから、サポートされているランタイムを選択します。この例では、Node.js 6.10 を使います。

    3. [Role] ドロップダウンリストで、[Choose an existing role]、[Create new role from template(s)]、または [Create a custom role] を選択します。次に、選択に応じて次の手順に従います。

    4. [Create function] を選択して続行します。

      この例では、[Designer] セクションをスキップし、次に [Function code] セクションに移動します。

  5. [Function code] (関数コード) ペインまで下にスクロールします。

  6. API Gateway での「Node.js」や「Java」の例のように、関数の実装をコピーアンドペーストします。

  7. [ランタイム] ドロップダウンメニューから、適切なランタイムを選択します。

  8. [Save] を選択します。

  9. 関数の完全な ARN をメモします (Lambda 関数ペインの右上隅)。この情報は、クロスアカウントの Lambda 統合を作成する際に必要になります。

クロスアカウントの Lambda 統合を設定する

別のアカウントで、統合用の Lambda 関数を設定したら、最初のアカウントで API Gateway コンソールを使用して API に追加します。

クロスアカウントの Lambda 統合を設定する

  1. API Gateway コンソールで、API を選択します。

  2. [リソース] を選択します。

  3. [リソース] ペインで、上位レベルの GET メソッドを選択します。

  4. [Method Execution] ペインで [Integration Request] を選択します。

  5. [Integration Type] (統合タイプ) で、[Lambda 関数] を選択します。

  6. [Use Lambda Proxy integration] (Lambda プロキシ統合の使用) を選択します。

  7. [Lambda リージョン] の設定は、アカウントのリージョンのままにします。

  8. [Lambda 関数] で、2 番目のアカウントで作成した Lambda 関数の完全な ARN をコピーアンドペーストし、チェックマークを選択します。

  9. [Add Permission to Lambda Function: You have selected a Lambda function from another account.Please ensure that you have the appropriate Function Policy on this function. You can do this by running the following AWS CLI command from account 123456789012:] のポップアップ、続いて aws lambda add-permission コマンド文字列が表示されます。

  10. aws lambda add-permission コマンド文字列を 2 番目のアカウントに設定されている AWS CLI ウィンドウにコピーアンドペーストします。これにより、2 番目のアカウントの Lambda 関数への最初のアカウントによるアクセスが許可されます。

  11. 前のステップで表示された、Lambda コンソールのポップアップで、[OK] を選択します。

  12. Lambda コンソールで、関数の更新後のポリシーを表示するには、

    1. 統合用の関数を選択します。

    2. [Designer] (デザイナー) ペインで、キーアイコンをクリックします。

    [Function policy] (関数のポリシー) ペインには、AWS:SourceArn が API の GET メソッドの ARN である Condition 句を含む Allow ポリシーが表示されます。