このページでは、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 ファイルを使用して設定できます。
コンソール
Google Cloud コンソールで、Cloud Run の [ジョブ] ページに移動します。
メニューから [ジョブ] を選択し、[コンテナをデプロイ] をクリックして、ジョブの初期設定ページに入力します。既存のジョブを構成する場合は、ジョブをクリックして [編集] をクリックします。
[コンテナ、ボリューム、接続、セキュリティ] をクリックして、ジョブのプロパティ ページを開きます。
[変数] タブをクリックします。
- [変数とシークレット] タブで、[変数を追加] をクリックし、[名前] フィールドと [値] フィールドに変数の名前と値を指定します。複数の環境変数を設定する方法や特殊文字をエスケープする方法については、複数の環境変数を設定するをご覧ください。
[作成] または [更新] をクリックします。
gcloud
ジョブの作成時に環境変数を指定するには、--set-env-vars
フラグを使用します。
gcloud run jobs create JOB_NAME --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2
次のように置き換えます。
- JOB_NAME: ジョブの名前。
- KEY1=VALUE1,KEY2=VALUE2: 変数名とその値のカンマ区切りのリスト。
- IMAGE_URL: コンテナ イメージへの参照(例:
us-docker.pkg.dev/cloudrun/container/job:latest
)。
複数の環境変数を設定する方法や特殊文字をエスケープする方法については、複数の環境変数を設定するをご覧ください。
YAML
新しいジョブを作成する場合は、この手順をスキップします。既存のジョブを更新する場合は、その YAML 構成をダウンロードします。
gcloud run jobs describe JOB_NAME --format export > job.yaml
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-1、VALUE-1 を環境変数と値に置き換えます。必要に応じて、変数と値は追加できます。
環境変数やメモリ上限など他の構成を指定することもできます。
既存のジョブ構成を更新します。
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 ジョブで同じ名前の環境変数を設定すると、ジョブに設定された値が優先されます。
複数の環境変数を設定する
.env
ファイルまたは --set-env-vars
フラグを使用して、複数の環境変数を設定できます。
.env
ファイルを使用して複数の環境変数を設定する
コンソール
Google Cloud コンソールで、Cloud Run の [ジョブ] ページに移動します。
メニューから [ジョブ] を選択し、[コンテナをデプロイ] をクリックして、ジョブの初期設定ページに入力します。既存のジョブを構成する場合は、ジョブをクリックして [編集] をクリックします。
[コンテナ、ボリューム、接続、セキュリティ] をクリックして、ジョブのプロパティ ページを開きます。
[コンテナ] タブをクリックします。
- [変数とシークレット] タブで、[変数を追加] をクリックし、
.env
ファイルの内容を [名前] フィールドに貼り付けます。Cloud Run によって [値] フィールドのデータが自動的に入力され、.env
ファイルで定義した Key-Value ペアごとに新しい変数が作成されます。
- [変数とシークレット] タブで、[変数を追加] をクリックし、
[作成] または [更新] をクリックします。
gcloud
.env
ファイルから複数の環境変数を指定するには、次のコマンドを実行します。
gcloud beta run jobs create JOB_NAME --image=IMAGE_URL --env-vars-file=ENV_FILE_PATH
次のように置き換えます。
- JOB_NAME: Cloud Run ジョブの名前。
- IMAGE_URL: コンテナ イメージへの参照(例:
us-docker.pkg.dev/cloudrun/container/job:latest
)。 - ENV_FILE_PATH:
.env
ファイルのパス。
--set-env-vars
フラグを使用して複数の環境変数を設定する
複数の環境変数を 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=..."
環境変数を更新する
既存のジョブの環境変数を更新できます。これは非破壊的なアプローチです。環境変数の変更または追加は行いますが、以前に設定された環境変数は削除しません。
コンソール
Google Cloud コンソールを使用して環境変数を更新するには:
Google Cloud コンソールで Cloud Run に移動します。
リストからジョブを選択し、[新しいリビジョンの編集とデプロイ] をクリックします。
[コンテナ] タブをクリックします。
[変数とシークレット] タブで、[名前] フィールドまたは [値] フィールドを編集し、[完了] をクリックします。
[デプロイ] をクリックします。
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 ジョブの現在の環境変数の設定を表示するには:
コンソール
Google Cloud コンソールで、Cloud Run の [ジョブ] ページに移動します。
目的のジョブをクリックして、[ジョブの詳細] ページを開きます。
[ジョブ構成の表示と編集] をクリックします。
構成の詳細で環境変数の設定を見つけます。
gcloud
次のコマンドを使用します。
gcloud run jobs describe JOB_NAME
返された構成で、環境変数の設定を見つけます。
環境変数を削除する
既存のジョブの環境変数を削除できます。
コンソール
Google Cloud コンソールを使用して環境変数を削除するには:
Google Cloud コンソールで Cloud Run に移動します。
リストからジョブを選択し、[新しいリビジョンの編集とデプロイ] をクリックします。
[コンテナ] タブをクリックします。
[変数とシークレット] タブで、削除する環境変数の [値] フィールドの左側にカーソルを移動して
[削除] アイコンを表示させ、クリックします。[完了] をクリックします。
[デプロイ] をクリックします。
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