Amazon API Gatewayのタイムアウト設定は最大29秒まで
Amazon API Gateway + Lambdaを使ってREST APIを作成した際に、Lambdaで重い処理を行っていた都合で、まれに Endpoint request timed out
エラーが発生することがあった。
Lambdaのタイムアウト時間は60秒にしており、CloudWatch Logsを確認すると60秒以内に処理が終わっていたものの、APIのレスポンスはエラーになっていた。
そういえばと思いAPI Gatewayのタイムアウト仕様を確認してみたところ、API Gatewayのタイムアウトは最大29秒(デフォルト)までの制限があり、上限緩和もできないとのことだった。
リソースまたはオペレーション: 統合のタイムアウト
デフォルトのクォータ: Lambda、Lambda プロキシ、HTTP、HTTP プロキシ、AWS 統合など、すべての統合タイプで 50 ミリ秒〜29 秒。
引き上げ可能: 下限または上限には適用外
29秒以上かかる場合は、API Gateway自体は即レスポンスを返すようにして非同期でLambdaを呼び出すようにするのが正しい方法だが、今回はLambdaの処理自体を見直すことで改善できそうだったので、Lambda側で29秒以内にレスポンスを返せるように修正した。