環境変数を設定すると、その変数がコンテナに挿入され、コードからアクセスできるようになります。環境変数は Key-Value ペアとして設定されます。
予約済みの名前
コンテナ ランタイムの契約で定義されている環境変数は予約されているため、設定はできません。特に、PORT
環境変数は Cloud Run によってコンテナに挿入されます。自分で設定しないでください。
環境変数を設定する
Cloud Run のサービスまたはジョブの環境変数を設定できます。
Cloud Run サービスの場合
構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。
新しいサービスを作成するとき、または新しいリビジョンをデプロイするときに、Google Cloud コンソール、gcloud コマンドライン、または YAML ファイルのいずれかを使用して環境変数を設定できます。
コンソール
デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。
新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[Container, Networking, Security] をクリックしてサービス構成ページを開きます。
[コンテナ] タブをクリックします。
- 手順は次のとおりです。
- 変数を追加する場合は、[変数を追加] をクリックします。[名前] テキスト ボックスに変数名を入力し、[値] テキスト ボックスに値を指定します。
- 変数の値を変更する場合は、[値] テキスト ボックスの現在の値を必要な値に置き換えます。
- 1 つ以上の環境変数を削除する場合は、削除する変数の [値] テキスト ボックスの左側にカーソルを置いてごみ箱アイコンを表示し、クリックします。
- 手順は次のとおりです。
[作成] または [デプロイ] をクリックします。
コマンドライン
既存サービスの環境変数を設定、更新、削除するには、gcloud run services update コマンドを使用します。必要に応じて、次のフラグを使用できます。
環境変数は、サービスのデプロイ中に指定するか、サービスの作成後に更新できます。
gcloud run deploy [SERVICE] --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2 gcloud run services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
- SERVICE は、実際のサービス名に置き換えます。
- KEY1=VALUE1,KEY2=VALUE2 は、目的の変数名とその値のカンマ区切りのリストに置き換えます。
- IMAGE_URL は、コンテナ イメージへの参照(
us-docker.pkg.dev/cloudrun/container/hello:latest
など)に置き換えます。Artifact Registry を使用する場合、URL はREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
という形式になります。
YAML
既存のサービス構成をダウンロードして表示するには、gcloud run services describe --format export
コマンドを使用します。読みやすく整えられた結果が YAML 形式で出力されます。次に、下記の手順に沿ってフィールドを変更し、gcloud run services replace
コマンドを使用して変更後の YAML ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。
構成を表示してダウンロードします。
gcloud run services describe SERVICE --format export > service.yaml
containers:
の下のenv
属性の下にあるname
属性とvalue
属性を更新します。apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE env: - name: KEY-1 value: VALUE-1 - name: KEY-N value: VALUE-N
次のように置き換えます。
- SERVICE は、Cloud Run サービスの名前に置き換えます。
- IMAGE_URL は、コンテナ イメージへの参照(
us-docker.pkg.dev/cloudrun/container/hello:latest
など)に置き換えます。Artifact Registry を使用する場合、URL はREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
という形式になります。 - KEY-1、VALUE-1 は、環境変数と値に置き換えます。必要に応じて、変数と値は追加できます。
- REVISION を新しいリビジョン名に置き換えるか、削除(存在する場合)します。新しいリビジョン名を指定する場合は、次の条件を満たす必要があります。
SERVICE-
で始まる- 小文字、数字、
-
のみが使用されている - 末尾が
-
ではない - 63 文字以内である
次のコマンドを使用して、サービスを新しい構成に置き換えます。
gcloud run services replace service.yaml
Terraform
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
Terraform 構成の template.spec.containers
の google_cloud_run_service
リソースに次の内容を追加します。次の例では、foo
環境変数を bar
に設定し、baz
環境変数を quux
に設定します。
Cloud Run ジョブの場合
Cloud Run ジョブの環境変数を設定するには:
コンソール
新しいジョブを構成する場合は、[ジョブ] タブをクリックし、必要に応じて初期ジョブ設定ページを入力します。既存のジョブを構成する場合は、ジョブをクリックして [編集] をクリックします。
[コンテナ、変数とシークレット、接続、セキュリティ] をクリックして、ジョブのプロパティ ページを開きます。
[変数] タブをクリックします。
- 手順は次のとおりです。
- 変数を追加する場合は、[変数を追加] をクリックします。[名前] テキスト ボックスに変数名を入力し、[値] テキスト ボックスに値を指定します。
- 変数の値を変更する場合は、[値] テキスト ボックスの現在の値を必要な値に置き換えます。
- 1 つ以上の環境変数を削除する場合は、削除する変数の [値] テキスト ボックスの左側にカーソルを置いてごみ箱アイコンを表示し、クリックします。
- 手順は次のとおりです。
[作成] または [更新] をクリックします。
コマンドライン
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
gcloud run jobs describe --format export
コマンドを使用して既存のジョブ構成をダウンロードして表示します。読みやすく整えられた結果が YAML 形式で出力されます。次に、下記のフィールドを変更して、gcloud run jobs replace
コマンドで変更後の 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
優先順位: コンテナとサービスまたはジョブ変数
コンテナ内でデフォルト環境変数を設定し、Cloud Run サービスまたはジョブで同じ名前の環境変数を設定すると、サービスに設定された値が優先されます。
環境変数の設定を表示する
Cloud Run サービスの現在の環境変数の設定を表示するには:
コンソール
目的のサービスをクリックして、[サービスの詳細] ページを開きます。
[変更内容] タブをクリックします。
右側の詳細パネルの [変数] タブに、環境変数設定が表示されます。
コマンドライン
次のコマンドを使用します。
gcloud run services describe SERVICE
返された構成で、環境変数設定を見つけます。
Cloud Run ジョブの現在の環境変数の設定を表示するには:
コンソール
目的のジョブをクリックして、[ジョブの詳細] ページを開きます。
[構成] タブをクリックします。
構成の詳細で環境変数の設定を見つけます。
コマンドライン
次のコマンドを使用します。
gcloud run jobs describe JOB_NAME
返された構成で、環境変数設定を見つけます。
サンプルコード
コード内で環境変数にアクセスする方法を示すコードサンプルについては、エンドユーザー認証チュートリアルの Secret Manager で機密性の高い構成を処理するをご覧ください。
次のステップ
環境変数を使用して Buildpack 構成を設定できます。言語固有の詳細については、次の Buildpack に関するドキュメントをご覧ください。