ワーカープールのコンテナを構成する

このページでは、Cloud Run ワーカープールのエントリポイント コマンドと引数を構成する方法について説明します。

Cloud Run がコンテナを起動すると、イメージのデフォルトのエントリポイント コマンドとデフォルトのコマンド引数が実行されます。イメージのデフォルトのエントリポイントとコマンド引数をオーバーライドする場合は、コンテナ構成の command フィールドと args フィールドを使用できます。command フィールドは、コンテナによって実行される実際のコマンドを指定します。args フィールドは、そのコマンドに渡される引数を指定します。

ワーカープールごとにコンテナあたり最大 1,000 個の引数を使用できます。

必要なロール

Cloud Run のワーカープールの構成とデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールCloud Run IAM 権限をご覧ください。Cloud Run ワーカープールがGoogle Cloud API(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限アクセスの管理をご覧ください。

エントリポイントと引数を構成する

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

指定されたコンテナ コマンドと引数によって、デフォルトのイメージ ENTRYPOINTCMD がオーバーライドされます。

Cloud Run ワーカープールのエントリポイント コマンドと引数を設定するには、Google Cloud コンソール、Google Cloud CLI、Terraform のいずれかを使用します。

コンソール

  1. Google Cloud コンソールで Cloud Run に移動します。

    Cloud Run に移動

  2. メニューから [ワーカープール] を選択し、[コンテナをデプロイ] をクリックして新しいワーカープールを構成します。既存のワーカープールを構成する場合は、ワーカープールをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。

  3. 新しいワーカープールを構成する場合は、最初のワーカープール ページに入力してから、[コンテナ、ボリューム、ネットワーキング、セキュリティ] をクリックしてワーカープール構成ページを開きます。

  4. [コンテナ] タブをクリックします。

    画像

    • コンテナ イメージで定義されているエントリポイント コマンドを使用しない場合は、コンテナで実行するコマンドを指定します。必要に応じて、エントリポイント コマンドの引数を指定します。
  5. [作成] または [デプロイ] をクリックします。

gcloud

既存のサービスの start コマンドと引数を更新するには:

gcloud beta run worker-pools update WORKER_POOL --command COMMAND --args ARG1,ARG-N

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

  • WORKER_POOL: ワーカープールの名前。
  • COMMAND: デフォルトのコマンドを使用していない場合に、コンテナを起動するコマンド。
  • ARG1: コンテナ コマンドに送信する引数。複数の引数を指定する場合は、カンマ区切りのリストを使用します。

新しいワーカープールまたは既存のワーカープールのデプロイ中にエントリポイントと引数を指定するには:

gcloud beta run worker-pools deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

IMAGE_URL は、ワーカープールを含むコンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/worker-pool:latest など)に置き換えます。

エントリポイント コマンドと引数のコンテナのデフォルトを復元する場合は、次のように空の文字列を指定します。

gcloud beta run worker-pools deploy --image IMAGE_URL --command "" --args ""

Terraform

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"
  launch_stage = "BETA"

  template {
    containers {
      image = "IMAGE_URL"
      command = ["COMMAND"]
      args = ["ARG1", "ARG2"]
    }
  }
}

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

  • WORKER_POOL: ワーカープールの名前。
  • REGION: Google Cloud リージョン(例: europe-west1)。
  • IMAGE_URL: ワーカープールを含むコンテナ イメージへの参照(例: us-docker.pkg.dev/cloudrun/container/worker-pool:latest)。
  • COMMAND: デフォルトのコマンドを使用していない場合に、コンテナを起動するコマンド。
  • ARG1ARG2: コンテナ コマンドに送信する引数。

サイドカー デプロイでコンテナの起動順序を構成する

サイドカー デプロイでコンテナの起動順序を指定するには、コンテナの依存関係の特性を利用します。依存関係のあるコンテナを指定し、それらが依存するコンテナをリストします。これらのコンテナが最初に開始されます。依存関係のないコンテナは常に最初かつ同時に起動されます。

この機能を正常に使用するには、起動ヘルスチェック プローブを使用する必要があります。起動プローブにより、Cloud Run は依存コンテナの健全性を検査し、次のコンテナを起動する前に問題ないことを確認します。ヘルスチェックを使用しない場合、依存するコンテナが起動に失敗した場合でも、コンテナは指定された順序で起動します。

ワーカープールには、デフォルトの起動ヘルスチェック プローブはありません。

Google Cloud コンソールまたは Google Cloud CLI を使用して起動順序を指定します。

コンソール

  1. Google Cloud コンソールで、[Cloud Run] ページに移動します。

    Cloud Run に移動

    • メニューから [ワーカープール] を選択します。
    • 既存のワーカープールの場合は、リスト内のワーカープールをクリックし、[新しいリビジョンの編集とデプロイ] を選択して、リビジョン デプロイ フォームを表示します。
    • 新しいワーカープールの場合は、[コンテナのデプロイ] をクリックして、[ワーカープールの作成] フォームを表示します。
  2. 新しいワーカープールの場合は、ワーカープールの名前、Ingress コンテナの URL、CPU 割り当て、上り(内向き)の制御、認証を指定します。[コンテナ、ボリューム、ネットワーキング、セキュリティ] タブで、次の操作を行います。

    1. Ingress コンテナを構成します。
    2. デプロイする他のコンテナを追加するには、[コンテナを追加] をクリックします。
    3. Ingress コンテナを除くすべてのコンテナで、起動ヘルスチェックを構成します。
    4. あるコンテナを他の特定のコンテナの後に起動する必要がある場合は、[コンテナの起動順序] メニューでそれらのコンテナを選択します。
  3. 既存のワーカープールの場合は、次の操作を行います。

    1. Ingress コンテナを除くすべてのコンテナで、起動ヘルスチェックを構成します。
    2. 各コンテナには、独自の [コンテナの起動順序] メニューが表示されます。コンテナを起動する前に他のコンテナを起動する必要がある場合は、[コンテナの起動順序] メニューで、最初に起動するコンテナを選択します。
  4. その他の必要な構成を完了し、新しいワーカープールの場合は [作成]、既存のワーカープールの場合は [デプロイ] をクリックします。デプロイが完了するまで待ちます。

gcloud

Google Cloud CLI を使用して起動順序を指定する前に、起動ヘルスチェックを構成します。

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 起動順序を指定して複数のコンテナをサービスにデプロイするには、次のコマンドを実行します。

  3. gcloud beta run worker-pools deploy WORKER_POOL \
         --container CONTAINER_1_NAME --image='WORKER_POOL_IMAGE'
         --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
         --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME

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

    • WORKER_POOL: ワーカープールの名前。
    • IMAGE_URL: ワーカープールを含むコンテナ イメージへの参照(例: us-docker.pkg.dev/cloudrun/container/worker-pool:latest)。
    • SIDECAR_IMAGE: サイドカー コンテナ イメージへの参照。

      deploy コマンドで各コンテナを構成する場合は、container パラメータの後に各コンテナの構成を指定します。

ワーカープールのコンテナ構成を確認する

  1. Google Cloud コンソールで Cloud Run に移動します。

    [Cloud Run] に移動

  2. [ワーカープール] をクリックして、デプロイされたワーカープールのリストを確認します。

  3. 確認するワーカープールをクリックして、詳細ペインを表示します。

  4. [コンテナ] タブをクリックして、ワーカープールのコンテナ構成を確認します。