翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
HTTP API のステージの使用
API ステージは、API のライフサイクル状態への論理的なリファレンスです (例: dev
、prod
、beta
、v2
など)。API ステージは API ID とステージ名で識別され、API の呼び出しに使用する URL に含まれます。各ステージは、API のデプロイの名前付きリファレンスで、クライアントアプリケーションから呼び出すことができます。
ステージには、API のベース URL から呼び出される $default
のステージを作成することができます。ベース URL は、https://{api_id}.execute-api.{region}.amazonaws.com/
のような形式になります。この URL を使用して API ステージを呼び出します。
デプロイは、API 設定のスナップショットです。ステージに API をデプロイすると、クライアントがその API を呼び出すことができます。変更を有効にするには、API をデプロイする必要があります。自動デプロイを有効にすると、API に対する変更が自動的にリリースされます。
ステージ変数
ステージ変数は、HTTP API のステージに対して定義できるキーと値のペアです。環境変数と同様に機能し、API のセットアップで使用できます。
たとえば、ステージ変数を定義し、その値を HTTP プロキシ統合の HTTP エンドポイントとして設定することができます。後で、関連付けられたステージ変数名を使用してエンドポイントを参照できます。これにより、各ステージで異なるエンドポイントで同じ API セットアップを使用できます。同様に、ステージ変数を使用して、API の各ステージに異なる AWS Lambda 関数の統合を指定できます。
注記
ステージ変数は、認証情報などの機密データに使用されることを意図していません。機密データを統合に渡すには、AWS Lambda オーソライザーを使用します。Lambda オーソライザーの出力では、機密データを統合に渡すことができます。詳細については、「Lambda オーソライザーのレスポンス形式」を参照してください。
例
ステージ変数を使用して HTTP 統合エンドポイントをカスタマイズするには、まずステージ変数の名前と値 (url
など) を example.com
の値で設定する必要があります。次に、HTTP プロキシ統合を設定します。エンドポイントの URL を入力する代わりに、ステージ変数の値、http://${stageVariables.url}
を使用するように API Gateway に指示できます 。この値を指定すると、API Gateway は、ランタイムに API のステージに応じてステージ変数の ${}
を置き換えます。
同様に、ステージ変数を参照して Lambda 関数名や AWS のロールの ARN を指定することができます。
ステージ変数値として Lambda 関数名を指定する場合は、その Lambda 関数に対するアクセス許可を手動で設定する必要があります。これを行うには、AWS Command Line Interface (AWS CLI) を使用できます。
aws lambda add-permission --function-name arn:aws:lambda:XXXXXX:your-lambda-function-name --source-arn arn:aws:execute-api:us-east-1:YOUR_ACCOUNT_ID:api_id/*/HTTP_METHOD/resource --principal apigateway.amazonaws.com --statement-id apigateway-access --action lambda:InvokeFunction
API Gateway のステージ変数のリファレンス
HTTP 統合 URI
ステージ変数は、次の例に示すように、HTTP 統合 URI の一部として使用できます。
-
プロトコルのない完全な URI –
http://${stageVariables.<variable_name>}
-
完全なドメイン –
http://${stageVariables.<variable_name>}/resource/operation
-
サブドメイン –
http://${stageVariables.<variable_name>}.example.com/resource/operation
-
パス –
http://example.com/${stageVariables.<variable_name>}/bar
-
クエリ文字列 –
http://example.com/foo?q=${stageVariables.<variable_name>}
Lambda 関数
ステージ変数は、次の例に示すように、Lambda 関数の統合名やエイリアスの代わりに使用できます。
-
arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:${stageVariables.<function_variable_name>}/invocations
-
arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account_id>:function:<function_name>:${stageVariables.<version_variable_name>}/invocations
注記
Lambda 関数にステージ変数を使用するには、関数が API と同じアカウントにある必要があります。ステージ変数は、クロスアカウント Lambda 関数をサポートしていません。
AWS 統合認証情報
次の例に示すように、ステージ変数を AWS ユーザーまたはロールの認証情報 ARN の一部として使用できます。
-
arn:aws:iam::<account_id>:${stageVariables.<variable_name>}