StepFunctionsからLambdaを呼び出した際のエラー「null (Service: Lambda, Status Code: 504, Request ID: null)」について教えてください

2022.03.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

StepFunctionsからLambdaを呼び出す処理で、

Lambda.AWSLambdaException
null (Service: Lambda, Status Code: 504, Request ID: null)

が発生しました。

エラーの発生原因と対処方法を教えてください。

どう対応すればいいの?

レスポンスコード 504 は、 StepFunctionsからLambda関数を呼び出したが、 時間内にレスポンスが得られなかった、というエラーです。(資料 [1])

こちらのエラーについては、 下記ビルダーズライブラリの資料 [2] の手法にて、対応をご検討いただき、 再試行(リトライ処理)を行っていただけますでしょうか。

もしリトライ処理を行っても全てのリクエストが失敗するぐらいに、エラーの発生頻度が高いような場合には、 詳細な調査をいたしますので、StepFunctionsのログ、Lambdaのログを添えてお問い合わせください。

参考資料

[1] 504 Gateway Timeout - HTTP | MDN

HyperText Transfer Protocol (HTTP) 504 Gateway Timeout サーバーエラーレスポンスコードは、サーバーがゲートウェイまたはプロキシとして機能しているときに、リクエストを完了するために必要な上流のサーバーからのレスポンスが時間内に得られなかったことを示します。

[2] ジッターを伴うタイムアウト、再試行、およびバックオフ

あるサービスまたはシステムが別のサービスまたはシステムを呼び出すたびに、障害が発生する可能性があります。これらの失敗は、さまざまな要因から発生することがあります。サーバー、ネットワーク、ロードバランサー、ソフトウェア、オペレーティングシステム、またはシステムオペレーターからのミスが含まれます。故障の可能性を減らすようにシステムを設計していますが、故障しないシステムを構築することは不可能です。そのため、Amazon では、障害の可能性を許容して削減するようにシステムを設計し、わずかな割合の障害を完全に停止するまで拡大することを防いでいます。回復力のあるシステムを構築するために、タイムアウト、再試行、およびバックオフの 3 つの重要なツールを採用しています。