ジョブの環境変数を構成する

このページでは、Cloud Run ジョブの環境変数の構成方法を説明します。

環境変数を設定すると、その変数がコンテナに挿入され、コードからアクセスできるようになります。環境変数は Key-Value ペアとして設定されます。

予約済みの名前

コンテナ ランタイムの契約で定義されている環境変数は予約されているため、設定できません。

環境変数の最大数

Cloud Run ジョブごとに、コンテナあたり最大 1,000 個の環境変数を設定できます。

必要なロール

Cloud Run ジョブの構成に必要な権限を取得するには、ジョブに対する次の IAM ロールを付与するよう管理者に依頼してください。

  • Cloud Run ジョブに対する Cloud Run デベロッパー ロール(roles/run.developer
  • サービス ID に対するサービス アカウント ユーザー ロール(roles/iam.serviceAccountUser

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

環境変数を設定する

新規ジョブと既存ジョブの環境変数を設定できます。--set-env-vars フラグは破壊的なアクションであり、以前に設定され新しい環境変数リストに含まれていない環境変数は削除される点に注意してください。

環境変数は、 Google Cloud コンソール、gcloud CLI、または YAML ファイルを使用して設定できます。

コンソール

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

    [Cloud Run] に移動

  2. メニューから [ジョブ] を選択し、[コンテナをデプロイ] をクリックして、ジョブの初期設定ページに入力します。既存のジョブを構成する場合は、ジョブをクリックして [編集] をクリックします。

  3. [コンテナ、ボリューム、接続、セキュリティ] をクリックして、ジョブのプロパティ ページを開きます。

  4. [変数] タブをクリックします。

    画像

    • 手順は次のとおりです。
      • 変数を追加する場合は、[変数を追加] をクリックします。[名前] テキスト ボックスに変数名を入力し、[] テキスト ボックスに値を指定します。
      • 変数の値を変更する場合は、[] テキスト ボックスの現在の値を必要な値に置き換えます。
      • 環境変数を削除する場合は、削除する変数の [] テキスト ボックスの左側にカーソルを合わせて、表示されたごみ箱アイコンをクリックします。
  5. [作成] または [更新] をクリックします。

gcloud

ジョブのデプロイ時に環境変数を指定するには、--set-env-vars フラグを使用します。

gcloud run jobs deploy JOB_NAME --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2

ジョブの更新時に環境変数を指定するには、ジョブの作成後に --set-env-vars フラグを使用します。

gcloud run jobs create JOB_NAME --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2

gcloud run jobs update JOB_NAME --update-env-vars KEY1=VALUE1,KEY2=VALUE2

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

  • JOB_NAME: ジョブの名前。
  • KEY1=VALUE1,KEY2=VALUE2: 変数名とその値のカンマ区切りのリスト。
  • IMAGE_URL: コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/job:latest など)。

多数の環境変数を設定する

KEY1=VALUE1,KEY2=VALUE2 形式でリストできない環境変数が多い場合は、--set-env-vars フラグを複数回、繰り返すことができます。
   [...]
   --set-env-vars "KEY1=VALUE1" \
   --set-env-vars "KEY2=VALUE2" \
   --set-env-vars "KEY3=VALUE3"

カンマをエスケープする

カンマ記号(,)は環境変数の分割に使用されるため、環境変数の値にカンマ記号が含まれる場合は、次のように別の区切り文字(@ など)を指定してカンマをエスケープする必要があります。
--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."

YAML

  1. 新しいジョブを作成する場合は、この手順をスキップします。既存のジョブを更新する場合は、その YAML 構成をダウンロードします。

    gcloud run jobs describe JOB_NAME --format export > job.yaml
    1. containers: に示すように、env の下にある name 属性と value 属性を更新します。
    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE
                env:
                - name: KEY-1
                  value: VALUE-1
                - name: KEY-N
                  value: VALUE-N

    KEY-1VALUE-1 を環境変数と値に置き換えます。必要に応じて、変数と値は追加できます。

    環境変数やメモリ上限など他の構成を指定することもできます。

  2. 既存のジョブ構成を更新します。

    gcloud run jobs replace job.yaml

Terraform

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

Terraform 構成の google_cloud_run_v2_job リソースに次の内容を追加します。

resource "google_cloud_run_v2_job" "default" {
  name     = "JOB_NAME"
  location = "REGION"

  template {
    template {
      containers {
        image = "us-docker.pkg.dev/cloudrun/container/job"
        env {
          name = "KEY-1"
          value = "VALUE-1"
        }
        env {
          name = "KEY-N"
          value = "VALUE-N"
        }
      }
    }
  }
}

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

  • JOB_NAME: Cloud Run ジョブの名前。
  • REGION は、 Google Cloud リージョンに置き換えます。例: europe-west1
  • KEY-1: 環境変数。
  • VALUE-1: 値。

必要に応じて env ブロックを追加し、さらに環境変数を設定します。

コンテナでデフォルトの環境変数を設定する

環境変数のデフォルト値を設定するには、Dockerfile で ENV ステートメントを使用します。

ENV KEY1=VALUE1,KEY2=VALUE2

変数の優先順位: コンテナとジョブ

コンテナ内でデフォルト環境変数を設定し、Cloud Run ジョブで同じ名前の環境変数を設定すると、ジョブに設定された値が優先されます。

環境変数を更新する

既存のジョブの環境変数を更新できます。これは非破壊的なアプローチです。環境変数の変更または追加は行いますが、以前に設定された環境変数は削除しません。

コンソール

Google Cloud コンソールを使用して環境変数を更新するには:

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

    Cloud Run に移動

  2. リストからジョブを選択し、[新しいリビジョンの編集とデプロイ] をクリックします。

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

  4. [変数とシークレット] タブで、[名前] フィールドまたは [] フィールドを編集し、[完了] をクリックします。

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

gcloud

既存のジョブの環境変数を更新するには、--update-env-vars フラグを使用します。

gcloud run jobs update JOB_NAME --update-env-vars KEY1=VALUE1,KEY2=VALUE2

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

  • JOB_NAME: ジョブの名前。
  • KEY1=VALUE1,KEY2=VALUE2: 変数名と値のカンマ区切りのリスト。

環境変数の設定を表示する

Cloud Run ジョブの現在の環境変数の設定を表示するには:

コンソール

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

    Cloud Run の [ジョブ] に移動

  2. 目的のジョブをクリックして、[ジョブの詳細] ページを開きます。

  3. [ジョブ構成の表示と編集] をクリックします。

  4. 構成の詳細で環境変数の設定を見つけます。

gcloud

  1. 次のコマンドを使用します。

    gcloud run jobs describe JOB_NAME
  2. 返された構成で、環境変数の設定を見つけます。

環境変数を削除する

既存のジョブの環境変数を削除できます。

コンソール

Google Cloud コンソールを使用して環境変数を削除するには:

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

    Cloud Run に移動

  2. リストからジョブを選択し、[新しいリビジョンの編集とデプロイ] をクリックします。

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

  4. [変数とシークレット] タブで、削除する環境変数の [] フィールドの左側にカーソルを移動して [削除] アイコンを表示させ、クリックします。

  5. [完了] をクリックします。

  6. [デプロイ] をクリックします。

gcloud

既存のジョブの環境変数を個別に削除するには、--remove-env-vars フラグを使用します。

gcloud run jobs update JOB_NAME --remove-env-vars KEY1,KEY2

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

  • JOB_NAME: ジョブの名前。
  • KEY1,KEY2: 変数名のカンマ区切りリスト。

または、--clear-env-vars フラグを使用して、以前に設定したすべての環境変数をクリアします。

gcloud run jobs update JOB_NAME --clear-env-vars

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

  • JOB_NAME: ジョブの名前。