リクエスト タイムアウトの設定

リクエスト タイムアウトの設定には、Cloud Run にデプロイされたサービスがレスポンスを返すまでの制限時間を指定します。指定した時間内にレスポンスが返されない場合、リクエストが終了し、エラー 504 が返されます。

デフォルトのタイムアウトは 5 分に設定されています。

この設定は、コンテナ イメージのデプロイ時に変更できます。また、サービスの構成を更新して変更することもできます。

Cloud Run のリクエスト タイムアウトを変更するだけでなく、使用言語のフレームワークに独自のリクエスト タイムアウト設定があるかどうか確認する必要があります。

リクエスト タイムアウトの設定と更新

構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。

新しいサービスを作成するとき、または新しいリビジョンをデプロイするときに、Cloud Console、gcloud コマンドライン、YAML ファイルを使用してリクエスト タイムアウトを設定できます。

Console

注: 15 分を超えるタイムアウトはベータ版の機能です。

  1. Cloud Run に移動します

  2. デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。

  3. [詳細設定] で [コンテナ] をクリックします。

    画像

  4. [リクエスト タイムアウト] フィールドに、使用するタイムアウト値を秒単位で入力します。次の範囲が用意されています。

    • Cloud Run(フルマネージド)の場合は、1900 秒(15 分)の範囲の値を使用します。60 分以内の値を指定できますが、15 分を超えるタイムアウトはベータ版の機能です。
    • Cloud Run for Anthos on Google Cloud の場合は、1600 秒(10 分)の範囲の値を使用します。

  5. [作成] または [デプロイ] をクリックします。

コマンドライン

特定のリビジョンのリクエスト タイムアウトを更新するには、次のコマンドを使用します。

gcloud run services update [SERVICE] --timeout=[TIMEOUT]

次のように置き換えます。

  • [SERVICE] は、実際のサービスの名前に置き換えます。
  • [TIMEOUT] は必要な時間で置き換えます。整数値を使用することも、期間を絶対値で指定することもできます。たとえば、1m20s は 1 分 20 秒を意味します。整数値の場合、単位は秒になります。指定する値は、Cloud Run(フルマネージド)の場合は 60 分未満、Cloud Run for Anthos on Google Cloud の場合は 10 分未満にする必要があります。15 分を超えるタイムアウトはベータ版の機能であり、gcloud beta run コマンドを使用する必要があるので注意してください。

デプロイ中に、次のコマンドを使用してリクエスト タイムアウトを設定することもできます。

gcloud run deploy --image IMAGE_URL --timeout=[TIMEOUT]

置換

  • IMAGE_URL は、コンテナ イメージへの参照(gcr.io/myproject/my-image:latest など)に置き換えます。
  • [TIMEOUT] は、必要な時間に置き換えます。整数値を使用することも、期間で指定することもできます。たとえば、1m20s は 1 分 20 秒を意味します。整数値の場合、単位は秒になります。指定する値は、Cloud Run(フルマネージド)の場合は 60 分未満、Cloud Run for Anthos on Google Cloud の場合は 10 分未満にする必要があります。15 分を超えるタイムアウトはベータ版の機能であり、gcloud beta run コマンドを使用する必要があるので注意してください。

YAML

既存のサービス構成をダウンロードして表示するには、gcloud run services describe --format export コマンドを使用します。読みやすく整えられた結果が YAML 形式で出力されます。次に、下記の手順に沿ってフィールドを変更し、gcloud beta run services replace コマンドを使用して変更後の YAML ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。

  1. 次のコマンドで、構成を表示してダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml
  2. timeoutSeconds 属性を更新します。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        spec:
          containers:
          - image: IMAGE
          timeoutSeconds: VALUE

    次のように置き換えます。

    • SERVICE は、Cloud Run サービスの名前に置き換えます。
    • IMAGE は、コンテナ イメージの URL に置き換えます。
    • VALUE は、必要なタイムアウト(秒単位)にします。
  3. 次のコマンドを使用して、サービスを新しい構成に置き換えます。

    gcloud beta run services replace service.yaml