質問: ### 前提・実現したいこと タイトルのとおりです。 調べてみるとLambdaをAPIGatewayから呼び出すと常に`invocationType:RequestResponse`となって同期呼び出しになると書かれている記事が多いですが、どれも1年前に書かれたものです。 AWS LambdaをWebから非同期で呼ぼうとした話 - Qiita python - How to invoke Lambda function with Event Invocation Type via API Gateway? - Stack Overflow しかし今APIGateway, Lambdaの公式ドキュメントのどちらを見ても同期呼び出しになると書かれていません。 > > X-Amz-Invocation-Type: Event | RequestReponse | DryRun ヘッダーを追加して、アクションをリクエストとレスポンスとして、またはテスト実行として、それぞれ非同期に呼び出すこともできます。 > > > AWS Lambda 関数の API GatewayAPI を作成する - Amazon API Gateway > > 同期呼び出し – Amazon API Gateway は、呼び出しタイプとして RequestResponse を指定することにより、Lambda 関数を呼び出してリアルタイムでレスポンスを取得できます > > > Amazon API Gateway での AWS Lambda の使用 (オンデマンド HTTPS 経由) - AWS Lambda --- > > Amazon API Gateway は、呼び出しタイプとして RequestResponse を指定することにより、Lambda 関数を呼び出してリアルタイムでレスポンスを取得できます > > > というのは`Event`を指定すれば非同期呼び出しになると解釈できるのですがそもそもその解釈が間違っているんでしょうか。 もし、前述のように常に同期呼び出しになるのであれば、「RequestResponse を指定することにより」ではなく、「RequestResponse を指定され」の記述のほうが誤解を招かず正しいと思いました。 日本語って難しいですね。 ### 試したこと * APIGatewayにてメソッドリクエストでリクエストヘッダーに`X-Amz-Invocation-Type`を追加して`Event`を指定してリクエスト 同期呼び出しになる - APIGatewayにてメソッドリクエストでリクエストヘッダーに`invocationType`を追加して`Event`を指定してリクエスト 同期呼び出しになる * LambdaをAWS CLIから`--invocation-type`オプションを追加して`Event`を指定して呼び出す 非同期呼び出しになる🙆
回答: ドキュメントを読んで、Management Console を触ってみただけですが、 > > メソッドリクエストでリクエストヘッダーにinvocationTypeを追加して > > > さらに、「統合リクエスト」の「HTTP ヘッダー」で X-Amz-Invocation-Type に invocationType の値をマッピングするのではないでしょうか。 「マッピング元」に「'Event'」と、静的に設定できるのかもしれません。