環境変数を構成する

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

予約済みの名前

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

必要なロール

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

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

環境変数を設定する

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

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

コンソール

  1. Google Cloud コンソールで、[Cloud Run] に移動します。

    Cloud Run に移動

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

  3. 新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[コンテナ、ボリューム、ネットワーキング、セキュリティ] をクリックしてサービス構成ページを開きます。

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

    画像

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

gcloud

既存サービスの環境変数を設定、更新、削除するには、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 を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL の形式は LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG です。

YAML

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

    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 を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL の形式は LOCATION-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 コマンドをご覧ください。

次の google_cloud_run_v2_service リソースでは、foo 環境変数を bar に設定し、baz 環境変数を quux に設定します。特定のニーズに合わせて環境変数を更新します。

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-env-var"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      # Environment variables
      env {
        name  = "foo"
        value = "bar"
      }
      env {
        name  = "baz"
        value = "quux"
      }
    }
  }
}

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

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

コンソール

  1. Google Cloud コンソールで、[Cloud Run] に移動します。

    Cloud Run に移動

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

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

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

gcloud

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

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

サンプルコード

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

次のステップ

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