環境変数を使用する

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

予約済みの名前

コンテナ ランタイムの契約で定義されている環境変数は予約されているため、設定はできません。特に、PORT 環境変数は Cloud Run によってコンテナに挿入されます。自分で設定しないでください。

環境変数を設定する

Cloud Run のサービスまたはジョブの環境変数を設定できます。

Cloud Run サービスの場合

構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。

新しいサービスを作成するとき、または新しいリビジョンをデプロイするときに、Google Cloud コンソール、gcloud コマンドライン、または YAML ファイルのいずれかを使用して環境変数を設定できます。

コンソール

  1. Cloud Run に移動します

  2. デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。

  3. 新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[Container, Networking, Security] をクリックしてサービス構成ページを開きます。

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

    イメージ

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

コマンドライン

既存サービスの環境変数を設定、更新、削除するには、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 ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。

  1. 構成を表示してダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml
  2. 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-1VALUE-1 は、環境変数と値に置き換えます。必要に応じて、変数と値は追加できます。
    • REVISION を新しいリビジョン名に置き換えるか、削除(存在する場合)します。新しいリビジョン名を指定する場合は、次の条件を満たす必要があります
      • SERVICE- で始まる
      • 小文字、数字、- のみが使用されている
      • 末尾が - ではない
      • 63 文字以内である
  3. 次のコマンドを使用して、サービスを新しい構成に置き換えます。

    gcloud run services replace service.yaml

Terraform

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

Terraform 構成の template.spec.containersgoogle_cloud_run_service リソースに次の内容を追加します。次の例では、foo 環境変数を bar に設定し、baz 環境変数を quux に設定します。

# Environment variables
# https://cloud.google.com/run/docs/configuring/environment-variables
env {
  name  = "foo"
  value = "bar"
}
env {
  name  = "baz"
  value = "quux"
}

Cloud Run ジョブの場合

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

コンソール

  1. Cloud Run に移動します

  2. 新しいジョブを構成する場合は、[ジョブ] タブをクリックし、必要に応じて初期ジョブ設定ページを入力します。既存のジョブを構成する場合は、ジョブをクリックして [編集] をクリックします。

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

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

    画像

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

コマンドライン

gcloud run jobs update コマンドを使用して、既存のサービスの環境変数を設定、更新、または削除します。必要に応じて、次のフラグを使用できます。

  • --set-env-vars
  • --update-env-vars
  • --remove-env-vars
  • --clear-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 ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。

  1. 次のコマンドで、構成を表示してダウンロードします。

    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

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

環境変数が多すぎて 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 サービスの現在の環境変数の設定を表示するには:

コンソール

  1. Cloud Run に移動します

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

  3. [変更内容] タブをクリックします。

  4. 右側の詳細パネルの [変数] タブに、環境変数設定が表示されます。

コマンドライン

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

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

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

コンソール

  1. Cloud Run ジョブに移動

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

  3. [構成] タブをクリックします。

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

コマンドライン

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

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

サンプルコード

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

次のステップ

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