環境変数を設定すると、その変数がコンテナに挿入され、コードからアクセスできるようになります。環境変数は Key-Value ペアとして設定されます。
予約済みの名前
コンテナ ランタイムの契約で定義されている環境変数は予約されているため、設定できません。特に、PORT
環境変数は Cloud Run によってコンテナに挿入されます。ご自身では設定しないでください。
環境変数の最大数
Cloud Run ジョブごとに、コンテナごとに最大 1,000 個の環境変数を設定できます。
必要なロール
Cloud Run ジョブの構成に必要な権限を取得するには、ジョブに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Cloud Run デベロッパー(
roles/run.developer
)- Cloud Run ジョブ -
サービス アカウント ユーザー(
roles/iam.serviceAccountUser
)- サービス ID
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run ジョブが Google Cloud APIs(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。
環境変数を設定する
Cloud Run ジョブの環境変数を設定するには:
コンソール
Google Cloud コンソールで Cloud Run の [ジョブ] ページに移動します。
[コンテナをデプロイ] をクリックし、[ジョブ] を選択して、ジョブの初期設定ページに入力します。既存のジョブを構成する場合は、ジョブをクリックして [編集] をクリックします。
[コンテナ、変数とシークレット、接続、セキュリティ] をクリックして、ジョブのプロパティ ページを開きます。
[変数] タブをクリックします。
- 手順は次のとおりです。
- 変数を追加する場合は、[変数を追加] をクリックします。[名前] テキスト ボックスに変数名を入力し、[値] テキスト ボックスに値を指定します。
- 変数の値を変更する場合は、[値] テキスト ボックスの現在の値を必要な値に置き換えます。
- 環境変数を削除する場合は、削除する変数の [値] テキスト ボックスの左側にカーソルを合わせて、表示されたごみ箱アイコンをクリックします。
- 手順は次のとおりです。
[作成] または [更新] をクリックします。
gcloud
gcloud run jobs update コマンドを使用して、既存のサービスの環境変数を設定、更新、または削除します。必要に応じて、次のフラグを使用できます。
- --set-env-vars
- --update-env-vars
- --remove-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
など)に置き換えます。
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
多数の環境変数を設定する
環境変数が多すぎて KEY1=VALUE1,KEY2=VALUE2
形式で簡単にリストにできない場合は、次のように上記のフラグを複数回繰り返すこともできます。
[...] --set-env-vars "KEY1=VALUE1" \ --set-env-vars "KEY2=VALUE2" \ --set-env-vars "KEY3=VALUE3"
カンマをエスケープする
カンマ記号(,
)は環境変数の分割に使用されるため、環境変数の値にカンマ記号が含まれる場合は、次のように別の区切り文字(@
など)を指定してカンマをエスケープする必要があります。
--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."
コンテナでデフォルトの環境変数を設定する
環境変数のデフォルト値を設定するには、Dockerfile で ENV
ステートメントを使用します。
ENV KEY1=VALUE1,KEY2=VALUE2
変数の優先順位: コンテナ vs サービスまたはジョブ
コンテナ内でデフォルト環境変数を設定し、Cloud Run サービスまたはジョブで同じ名前の環境変数を設定すると、サービスに設定された値が優先されます。
環境変数の設定を表示する
Cloud Run ジョブの現在の環境変数の設定を表示するには:
コンソール
Google Cloud コンソールで Cloud Run の [ジョブ] ページに移動します。
目的のジョブをクリックして、[ジョブの詳細] ページを開きます。
[構成] タブをクリックします。
構成の詳細で環境変数の設定を見つけます。
gcloud
次のコマンドを使用します。
gcloud run jobs describe JOB_NAME
返された構成で、環境変数の設定を見つけます。