API Gateway コンソールを使用して API 統合リクエストを設定する
API メソッドの設定でメソッドとその動作を定義します。メソッドを設定するには、メソッドが公開されるリソース (ルート ("/") を含む)、HTTP メソッド (GET
、POST
など)、ターゲットバックエンドとの統合方法を指定する必要があります。メソッドのリクエストと応答によって、APIはどのパラメータを受け取ることができ、応答はどのようなものかを明記し、呼び出し元アプリケーションとの取り決めが指定されます。
以下の手順では、API Gateway コンソールを使用してメソッド設定を指定する方法について説明します。
-
[リソース] ペインで、[メソッドの作成] を選択します。
[メソッドタイプ] には [HTTP メソッド] を選択します。
[統合タイプ] で、以下を選択します。
-
API を Lambda 関数と統合する場合は、[Lambda 関数] を選択します。API レベルで、非プロキシ統合を作成する場合はこれが
AWS
統合タイプになり、AWS_PROXY
プロキシ統合を作成する場合は 統合タイプになります。 -
API が HTTP エンドポイントに統合される場合は、[HTTP] を選択します。API レベルで、これは
HTTP
統合タイプです。 -
API が AWS サービスと直接統合する場合は、[AWS のサービス] を選択します。API レベルで、これは
AWS
統合タイプです。上記の [Lambda 関数] オプションは、Lambda 関数を呼び出すためのAWS
統合の特殊なケースです。次のいずれかを実行するために IAM API Gateway を作成するには:
新しい Lambda 関数の作成
Lambda 関数へのリソース許可を設定します。
その他の Lambda サービスアクションを実行します。
[AWS のサービス] を選択する必要があります。
-
API Gateway をバックエンドとして静的レスポンスを返す場合は、[モック] を選択します。API レベルで、これは
MOCK
統合タイプです。一般的に、API が最終版ではないものの、テスト用に API レスポンスを生成して関連チームのブロックを解除する場合は、MOCK
統合を使用します。OPTION
メソッドの場合、API Gateway は、適用された API リソースに CORS が有効のヘッダーを返すようにMOCK
統合をデフォルトに設定します。このオプションを選択する場合は、このトピックの残りの手順をスキップし、「API Gateway でモック 統合を設定する」を参照してください。
-
-
[Lambda 関数] を選択した場合は、以下の操作を実行します。
-
Lambda プロキシ統合を使用するには、[Lambda プロキシ統合] をオンにします。Lambda プロキシ統合の詳細については、「API Gateway Lambda プロキシの統合について理解する」を参照してください。
-
[Lambda 関数] に、Lambda 関数の名前を入力します。API とは異なるリージョンで Lambda 関数を使用している場合は、ドロップダウンメニューからリージョンを選択し、Lambda 関数の名前を入力します。クロスアカウントの Lambda 関数を使用している場合は、関数 ARN を入力します。
リージョン名と識別子のリストについては、アマゾン ウェブ サービスの全般リファレンスの「AWS Lambda」を参照してください。
-
29 秒のデフォルトのタイムアウト値を使用するには、[デフォルトタイムアウト] をオンのままにします。カスタムのタイムアウトを設定するには、[デフォルトタイムアウト] を選択してから、タイムアウト値を
50
~29000
ミリ秒の間で入力します。 -
[メソッドの作成] を選択します。
-
-
[HTTP] を選択する場合は、以下の操作を実行します。
-
HTTP プロキシ統合を使用するには、[HTTP プロキシ統合] をオンにします。HTTP プロキシ統合の詳細については、「API Gateway の HTTP プロキシ統合を設定する」を参照してください。
-
[HTTP メソッド] で、HTTP バックエンドのメソッドに最も厳密に一致する HTTP メソッドタイプを選択します。
-
[エンドポイント URL] に、メソッドで使用する HTTP バックエンドの URL を入力します。
-
[コンテンツ処理] には、コンテンツ処理動作を選択します。
-
29 秒のデフォルトのタイムアウト値を使用するには、[デフォルトタイムアウト] をオンのままにします。カスタムのタイムアウトを設定するには、[デフォルトタイムアウト] を選択してから、タイムアウト値を
50
~29000
ミリ秒の間で入力します。 -
[メソッドの作成] を選択します。
-
-
[Mock] を選択する場合は、以下の操作を実行します。
-
[メソッドの作成] を選択します。
-
-
[AWS のサービス] を選択した場合は、以下の操作を実行します。
-
[AWS リージョン] で、このメソッドがアクションの呼び出しに使用する AWS リージョンを選択します。
-
[AWS のサービス] で、このメソッドが呼び出す AWS のサービスを選択します。
-
[AWS サブドメイン] に、AWS のサービスで使用されるサブドメインを入力します。通常、このフィールドは空欄にします。一部の AWS のサービスでは、ホストの一部としてサブドメインをサポートすることができます。可用性と詳細は、サービスのドキュメントを参照してください。
-
[HTTP メソッド] で、アクションに対応する HTTP メソッドタイプを選択します。適切な HTTP メソッドタイプについては、[AWS のサービス] で選択した AWS サービスの API リファレンスドキュメントを参照してください。
-
[アクションタイプ] には、API アクションを使用する場合は [アクション名の使用] を、カスタムリソースパスを使用する場合は [パス上書きの使用] を選択します。利用できるアクションとカスタムリソースパスについては、[AWS のサービス] で選択した AWS のサービスに関する API リファレンスドキュメントを参照してください。
-
[アクション名] または [パス上書き] のいずれかを入力します。
-
[実行ロール] には、メソッドがアクションの呼び出しに使用する IAM ロールの ARN を入力します。
IAM ロールを作成するには、ステップ 1: AWS のサービスプロキシの実行ロールを作成する の指示を使用できます。以下の形式のアクセスポリシーを、必要な数のアクションおよびリソースステートメントと共に指定します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "
action-statement
" ], "Resource": [ "resource-statement
" ] }, ... ] }アクションおよびリソースステートメントの構文については、[AWS のサービス] で選択した AWS サービスのドキュメントを参照してください。
IAM ロールの信頼関係で、以下のように指定して、API Gateway が AWS アカウントに代わってアクションを実行できるようにます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
29 秒のデフォルトのタイムアウト値を使用するには、[デフォルトタイムアウト] をオンのままにします。カスタムのタイムアウトを設定するには、[デフォルトタイムアウト] を選択してから、タイムアウト値を
50
~29000
ミリ秒の間で入力します。 -
[メソッドの作成] を選択します。
-