API Gateway REST API から HTTP 504 エラーをトラブルシューティングする方法を教えてください。

最終更新日: 2021 年 2 月 23 日

Amazon API Gateway を使用して REST API を呼び出すと、HTTP 504 ステータスコードが表示されます。このエラーをトラブルシューティングする方法を教えてください。

簡単な説明

統合リクエストが API Gateway REST API の最大統合タイムアウトパラメータよりも長くかかる場合、API Gateway は HTTP 504 ステータスコードを返します。

API Gateway から 504 エラーをトラブルシューティングするには、まず Amazon CloudWatch 実行ログでエラーの原因を特定して確認します。次に、次の方法の 1 つまたは複数を使用して、統合リクエストの実行時間を減らしてタイムアウトしないようにします。

解決方法

Amazon CloudWatch Logs の 504 エラーの原因を特定して確認するには

1.    504 エラーを返す API の API Gateway のログ記録を設定します。

2.    504 エラーを手動で再現します。

3.    CloudWatch コンソールで、エラーを受け取った統合の API Gateway 実行ログを表示します。

4.    CloudWatch Logs でリクエスト ID を追跡します。統合でタイムアウトがある場合は、「変換後のエンドポイントリクエスト本文:」行の後にタイムアウトエラーメッセージが原因で、実行が失敗しましたと表示されています。詳細については、「CloudWatch Logs で API Gateway REST API エラーを見つける方法を教えてください」を参照してください。

5.    次の手順を実行して、エラーの原因を特定します。
関連付けられた統合エンドポイントが呼び出されたことを確認します。
統合ロジックが完了し、API Gateway に応答するのにかかった時間を確認します。

6.    統合が呼び出されなかった場合は、リクエストを再試行します。(このエラーは、API Gateway サービスの一時的なネットワーク障害が原因で発生する可能性があります)。
注: アプリケーションが冪等であることを確認してください。これにより、API リクエストを再試行するときにデータの競合を回避できます。

- または -

統合が呼び出されたが、504 エラーメッセージが返された場合は、最大統合リクエストタイムアウトパラメータを増やすか、統合の実行時間を減らしてみてください。
注: API Gateway のデフォルトの最大統合タイムアウトは 30 秒です。

統合の実行時間を減らすには

  • バックエンド統合には、API Gateway がクライアントに HTTP 応答を送信するために必要なロジックのみが含まれていることを確認します。依存しないロジックまたは後処理ロジックは、AWS Lambda などの別のサービスに移動することを検討してください。
  • ネットワークのレイテンシーが 504 エラーの原因である場合は、クライアント側のアプリケーションで再試行ロジックを実装します。
  • プラットフォームの最適化のベストプラクティスに従って、バックエンド統合を改善します。

これらのアクションのいずれも必要な応答速度を達成しない場合は、非同期 API Gateway 統合呼び出しの実装を検討してください。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?