Cloud Run for Anthos サービスがリクエストに対するレスポンスを返すまでの許容時間を設定する方法について説明します。指定した時間内にレスポンスが返されない場合、リクエストが終了し、エラー 504
が返されます。
タイムアウト上限
最大タイムアウトの上限は、GKE クラスタのバージョンによって異なります。
GKE バージョン | デフォルトの上限 | 最大タイムアウトの上限 |
---|---|---|
0.16.0-gke.1 以降 | 300 秒 | 24 時間 |
0.15.0-gke.3 以前 | 300 秒 | 900 秒 |
Cloud Run for Anthos のリクエスト タイムアウトの変更に加えて、使用言語のフレームワークに更新が必要な独自のリクエスト タイムアウト設定があるかどうかも確認する必要があります。
リクエスト タイムアウトの設定と更新
構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。
新しいサービスをデプロイするか、既存のサービスを更新してリビジョンをデプロイする際に、Google Cloud コンソール、Google Cloud CLI、または YAML ファイルを使用してリクエスト タイムアウトを設定できます。
Console
Google Cloud コンソールで Cloud Run for Anthos に移動します。
デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、そのサービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。
[詳細設定] で [コンテナ] をクリックします。
[リクエストのタイムアウト] フィールドに、使用するタイムアウト値を入力します。指定する値は、クラスタの GKE バージョンのタイムアウト上限よりも小さい値にする必要があります。
[次へ] をクリックして、次のセクションに進みます。
[このサービスをトリガーする方法の構成] セクションで、サービスを呼び出すために使用する接続を選択します。
[作成] をクリックしてイメージを Cloud Run for Anthos にデプロイし、デプロイの完了を待ちます。
コマンドライン
既存のサービスの場合、
--timeout
パラメータを指定してgcloud run services update
コマンドを実行することで、リクエストのタイムアウトを設定します。gcloud run services update SERVICE --timeout TIMEOUT
以下のように置き換えます。
新しいサービスの場合、
--timeout
パラメータを指定してgcloud run deploy
コマンドを実行することで、リクエストのタイムアウトを設定します。gcloud run deploy SERVICE --image=IMAGE_URL --timeout TIMEOUT
以下のように置き換えます。
YAML
--format=export
フラグを使用して、gcloud run services describe
コマンドで既存のサービスの構成を YAML ファイルにダウンロードできます。次に YAML ファイルを変更し、gcloud beta run services replace
コマンドを使用してこれらの変更をデプロイします。指定した属性のみを変更する必要があります。
ローカル ワークスペースの
service.yaml
という名前のファイルにサービスの構成をダウンロードします。gcloud run services describe SERVICE --format export > service.yaml
SERVICE は、Cloud Run for Anthos サービスの名前に置き換えます。
ローカル ファイルで
timeoutSeconds
属性を更新します。apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE timeoutSeconds: TIMEOUT
以下のように置き換えます。
- SERVICE は、Cloud Run for Anthos サービスの名前に置き換えます。
- IMAGE_URL は、コンテナ イメージへの参照(
gcr.io/myproject/my-image:latest
など)に置き換えます。 - TIMEOUT は、必要なタイムアウト(秒単位)にします。
次のコマンドを使用して、サービスを新しい構成に置き換えます。
gcloud beta run services replace service.yaml