GCPのAPI GatewayでHTTPエラー504が発生した場合の解決策

この記事は公開から1年以上経過しています。

Google Cloud PlatformのCloud Functionsでレスポンスタイムの遅いWebAPIをAPI Gateway経由で呼び出したところHTTP 504/response_timeoutエラーが発生してしまったため、その対応についての備忘録。


原因

API Gatewayのデフォルトタイムアウト値の15秒を超過したため。


対応

API Gatewayの構成ファイル(OpenAPI)のx-google-backend.deadlineにタイムアウト値を設定する。

タイムアウト値に180秒を設定する場合の例:

paths:
  /xxx:
    post:
      summary: xxx
      operationId: xxx
      x-google-backend:
        address: https://path-to-the-cloud-functions
        deadline: 180
        "200":
          description: xxx

ちなみに2023.6現在、APIに関連するその他のタイムアウト値の既定値はCloud Functionsが60秒、Cloud Runが300秒となっているため、API Gatewayのレスポンスタイムを調整する場合はこれらのタイムアウト値の調整もお忘れなく。


参考ウェブサイトなど

Cloud Functionsドキュメント
関数のタイムアウト

Cloud Endpointsリファレンス
OpenAPIの拡張/deadline

Cloud Runガイド
リクエスト タイムアウトの設定(サービス)

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする