インスタンスの環境変数を構成する

このページでは、Cloud Run インスタンスの環境変数を構成する方法について説明します。

必要なロール

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

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

環境変数を設定する

Cloud Run インスタンスの環境変数を設定するには、Google Cloud CLI または YAML を使用します。

gcloud

インスタンスの作成時に環境変数を指定するには、 --set-env-vars フラグを使用します。

gcloud beta run instances create INSTANCE --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2

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

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

複数の環境変数を設定する方法や特殊文字をエスケープする方法については、複数の環境変数を設定するをご覧ください。

YAML

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

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. 次の例には、YAML 構成が含まれています。

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - env:
        - name: KEY
          value: VALUE
        - name: KEY2
          value: VALUE2
        image: IMAGE

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

    • INSTANCE: Cloud Run インスタンスの名前。
    • KEY、VALUE: 環境変数 の名前と値。
    • IMAGE_URL: コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello:latest など)。
  3. 次のコマンドを使用して、インスタンスを作成または更新します。

    gcloud beta run instances replace instance.yaml

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

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

ENV KEY1=VALUE1,KEY2=VALUE2

変数の優先順位: コンテナとインスタンス

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

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

.env ファイルまたは --set-env-vars フラグを使用して、複数の環境変数を設定できます。

.env ファイルを使用して複数の環境変数を設定する

gcloud

.env ファイルから複数の環境変数を指定するには、次のコマンドを実行します。

gcloud beta run instances create INSTANCE --image IMAGE_URL --env-vars-file=ENV_FILE_PATH

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

  • INSTANCE: インスタンスの名前。
  • IMAGE_URL: コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/hello: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 CLI または YAML を使用します。

gcloud

既存のインスタンスの環境変数を更新するには、 --update-env-vars フラグを使用します。

gcloud beta run instances update INSTANCE --update-env-vars KEY1=VALUE1,KEY2=VALUE2

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

  • INSTANCE: インスタンスの名前
  • KEY1=VALUE1,KEY2=VALUE2: 変数 名と値のカンマ区切りのリスト

YAML

  1. インスタンスの YAML 構成 をダウンロードします。

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. キー(名前)変数と値変数を編集します。

  3. 次のコマンドを使用してインスタンスを更新します。

    gcloud beta run instances replace instance.yaml

環境変数を削除する

gcloud

既存のインスタンスから環境変数を個別に削除するには、 --remove-env-vars フラグを使用します。

gcloud beta run instances update INSTANCE --remove-env-vars KEY1,KEY2

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

  • INSTANCE: インスタンスの名前
  • KEY1,KEY2: 変数名のカンマ区切りのリスト

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

gcloud beta run instances update INSTANCE --clear-env-vars

INSTANCE は実際のインスタンス名に置き換えます。

サンプルコード

コード内で環境変数にアクセスする方法を示すコードサンプルについては、 エンドユーザー認証チュートリアルの Secret Manager で機密性の高い構成を処理する をご覧ください。

次のステップ

Buildpack 構成を設定するには、環境変数を使用します。言語固有の詳細については、次の Buildpack に関するドキュメントをご覧ください。