환경 변수 구성

이 페이지에서는 Cloud Run 서비스의 환경 변수를 구성하는 방법을 설명합니다. 구성을 변경하면 새 버전이 생성됩니다. 이를 변경하는 명시적 업데이트가 없으면 이후 버전에도 이 구성 설정이 자동으로 적용됩니다.

필요한 역할

Cloud Run 서비스를 구성하고 배포하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

Cloud Run과 연결된 IAM 역할 및 권한 목록은 Cloud Run IAM 역할Cloud Run IAM 권한을 참조하세요. Cloud Run 서비스가 Cloud 클라이언트 라이브러리와 같은 Google Cloud API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여에 대한 자세한 내용은 배포 권한액세스 관리를 참조하세요.

환경 변수 설정하기

새 서비스를 만들거나 새 버전을 배포할 때 Google Cloud 콘솔, gcloud CLI 또는 YAML 파일을 사용하여 환경 변수를 설정할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud Run으로 이동합니다.

    Cloud Run으로 이동

  2. 컨테이너 배포를 클릭하고 서비스를 선택하여 새 서비스를 구성합니다. 기존 서비스를 구성하는 경우 서비스를 클릭한 후 새 버전 수정 및 배포를 클릭합니다.

  3. 새 서비스를 구성하는 경우 초기 서비스 설정 페이지를 작성한 후 컨테이너, 볼륨, 네트워킹, 보안을 클릭하여 서비스 구성 페이지를 펼칩니다.

  4. 컨테이너 탭을 클릭합니다.

    이미지

    • 변수 추가를 클릭하여 새 변수를 추가하고 이름 필드에 변수의 이름과 값을 지정합니다.
  5. 만들기 또는 배포를 클릭합니다.

gcloud

서비스를 배포할 때 환경 변수를 지정하거나 서비스가 생성된 후에 이러한 변수를 업데이트할 수 있습니다.

서비스를 배포하는 동안 환경 변수를 지정하려면 --set-env-vars 플래그를 사용합니다.

gcloud run deploy SERVICE --image IMAGE_URL --set-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 속성에서 namevalue 속성을 업데이트합니다.

    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"

  deletion_protection = false # set to "true" in production

  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

우선 순위: 컨테이너와 서비스 또는 작업 변수 비교

컨테이너에서 기본 환경 변수를 설정하고 Cloud Run 서비스 또는 작업에서도 같은 이름으로 환경 변수를 설정하면 서비스에 설정된 값이 우선 적용됩니다.

환경 변수 설정 보기

Cloud Run 서비스의 현재 환경 변수 설정을 보려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud Run으로 이동합니다.

    Cloud Run으로 이동

  2. 관심이 있는 서비스를 클릭하여 서비스 세부정보 페이지를 엽니다.

  3. 버전 탭을 클릭합니다.

  4. 오른쪽의 세부정보 패널의 컨테이너 탭에 환경 변수 설정이 나열됩니다.

gcloud

  1. 다음 명령어를 사용하세요.

    gcloud run services describe SERVICE
  2. 반환된 구성에서 환경 변수 설정을 찾습니다.

환경 변수 업데이트

기존 서비스의 런타임 환경 변수를 업데이트할 수 있습니다. 이는 비파괴적인 접근 방식으로, 런타임 환경 변수를 변경 및 추가하지만 삭제하지는 않습니다.

콘솔

Google Cloud 콘솔을 사용하여 런타임 환경 변수를 업데이트하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Cloud Run으로 이동합니다.

    Cloud Run으로 이동

  2. 목록에서 서비스를 선택하고 새 버전 수정 및 배포를 클릭합니다.

  3. 컨테이너 탭을 클릭합니다.

  4. 변수 및 보안 비밀 탭에서 이름 또는 필드를 수정한 다음 완료를 클릭합니다.

  5. 배포를 클릭합니다.

gcloud

기존 서비스의 환경 변수를 업데이트하려면 --update-env-vars 플래그를 사용합니다.

gcloud run services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2

다음과 같이 바꿉니다.

  • SERVICE를 서비스 이름으로 바꿉니다.
  • KEY1=VALUE1,KEY2=VALUE2: 변수 이름과 값을 쉼표로 구분한 목록입니다.

기존 멀티 리전 서비스의 환경 변수를 업데이트하려면 gcloud beta run multi-region-services update 명령어를 사용합니다.

환경 변수 삭제

콘솔

Google Cloud 콘솔을 사용하여 런타임 환경 변수를 삭제하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Cloud Run으로 이동합니다.

    Cloud Run으로 이동

  2. 목록에서 서비스를 선택하고 새 버전 수정 및 배포를 클릭합니다.

  3. 컨테이너 탭을 클릭합니다.

  4. 변수 및 보안 비밀 탭에서 삭제할 환경 변수의 필드 왼쪽으로 커서를 이동하여 삭제 아이콘을 표시하고 클릭합니다.

  5. 완료를 클릭합니다.

  6. 배포를 클릭합니다.

gcloud

기존 서비스의 환경 변수를 선택적으로 삭제하려면 --remove-env-vars 플래그를 사용합니다.

gcloud run services update SERVICE --remove-env-vars KEY1,KEY2

다음과 같이 바꿉니다.

  • SERVICE를 서비스 이름으로 바꿉니다.
  • KEY1,KEY2: 쉼표로 구분된 변수 이름 목록입니다.

또는 --clear-env-vars 플래그를 사용하여 이전에 설정된 모든 환경 변수를 삭제할 수 있습니다.

gcloud run services update SERVICE --clear-env-vars

다음과 같이 바꿉니다.

  • SERVICE를 서비스 이름으로 바꿉니다.

샘플 코드

코드에서 환경 변수에 액세스하는 방법을 보여주는 코드 샘플은 최종 사용자 인증 튜토리얼에서 Secret Manager로 민감한 구성 처리를 참조하세요.

다음 단계

환경 변수를 사용하여 buildpacks 구성을 설정할 수 있습니다. 언어별 세부정보는 다음에 대한 빌드팩 문서를 참고하세요.