Cloud Composer 1 | Cloud Composer 2
이 페이지에서는 Cloud Composer 환경에서 환경 변수를 설정하는 방법을 설명합니다.
Cloud Composer는 환경 변수를 사용하여 Airflow 또는 DAG의 런타임 동작을 변경합니다.
환경 변수는 영구적입니다. 환경 변수를 지정하면 해당 환경에서 삭제될 때까지 Airflow에서 계속 사용됩니다.
예를 들어 Cloud Composer는 이메일 알림에 Apache Airflow sendgrid 모듈을 사용합니다. 이메일 알림을 구성하려면 SENDGRID_API_KEY
및 SENDGRID_MAIL_FROM
환경 변수를 설정해야 합니다.
이름 형식
환경 변수는 정규 표현식 [a-zA-Z_][a-zA-Z0-9_]*
와 일치해야 합니다.
환경 변수는 Apache Airflow 소프트웨어 구성 재정의를 지정하지 않아야 합니다. 즉, 변수는 AIRFLOW__{SECTION}__{KEY}
형식을 사용하거나 정규 표현식 AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+
와 일치할 수 없습니다.
예약된 변수
다음 이름은 예약되어 있으므로 사용될 수 없습니다.
- AIRFLOW_DATABASE_VERSION
- AIRFLOW_HOME
- AIRFLOW_SRC_DIR
- AUTO_GKE
- C_FORCE_ROOT
- CLOUDSDK_METRICS_ENVIRONMENT
- COMPOSER_ENVIRONMENT
- COMPOSER_GKE_LOCATION
- COMPOSER_GKE_NAME
- COMPOSER_GKE_ZONE
- COMPOSER_LOCATION
- COMPOSER_PYTHON_VERSION
- COMPOSER_VERSION
- CONTAINER_NAME
- DAGS_FOLDER
- GCP_PROJECT
- GCS_BUCKET
- GCSFUSE_EXTRACTED
- GKE_CLUSTER_NAME
- GOOGLE_APPLICATION_CREDENTIALS
- MAJOR_VERSION
- MINOR_VERSION
- PATH
- PORT
- PROJECT_ID
- PIP_DISABLE_PIP_VERSION_CHECK
- SQL_DATABASE
- SQL_HOST
- SQL_INSTANCE
- SQL_PASSWORD
- SQL_PROJECT
- SQL_REGION
- SQL_USER
새 환경의 환경 변수 설정
환경을 만들 때 환경 변수를 지정할 수 있습니다. 자세한 내용은 환경 만들기를 참조하세요.
기존 환경의 환경 변수 설정
Console
기존 환경의 환경 변수를 설정하려면 다음 안내를 따르세요.
Google Cloud Console에서 환경 페이지로 이동합니다.
환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.
환경 변수 탭으로 이동하여 수정을 클릭합니다.
환경의 환경 변수를 추가, 변경 또는 삭제합니다.
- 이름 필드에 변수 이름을 지정합니다.
- 값 필드에 변수 값을 지정합니다.
- 변수를 더 추가하려면 환경 변수 추가를 클릭합니다.
- 변수를 삭제하려면 마우스 포인터를 변수 위에 올려놓고 항목 삭제를 클릭합니다.
gcloud
다음 인수에서 환경 변수를 제어합니다.
--update-env-variables
는 만들거나 업데이트할 환경 변수의 쉼표로 구분된 목록을 지정합니다.--remove-env-variables
는 삭제할 환경 변수의 쉼표로 구분된 목록을 지정합니다.--clear-env-variables
는 모든 기존 환경 변수를 삭제합니다.
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--update-env-variables=NAME=VALUE
다음과 같이 바꿉니다.
ENVIRONMENT_NAME
을 환경 이름으로 바꿉니다.LOCATION
을 환경이 위치한 리전으로 바꿉니다.NAME
을 만들거나 업데이트할 변수의 이름으로 바꿉니다.VALUE
를 변수 값으로 바꿉니다.- 변수를 두 개 이상 추가하려면 다음과 같이 정의를 쉼표로 구분합니다.
NAME=VALUE,NAME=VALUE,...
예를 들면 다음과 같습니다.
gcloud composer environments update \
example-environment \
--location us-central1 \
--update-env-variables=EXAMPLE_VARIABLE=True,ANOTHER_VARIABLE=test
API
environments.patch
API 요청을 생성합니다.
이 요청의 작성 방법:
updateMask
매개변수에config.softwareConfig.envVariables
마스크를 지정하여 모든 기존 변수를 지정된 변수로 바꿉니다. 지정하지 않은 변수는 삭제됩니다.요청 본문에서 변수와 해당 값을 지정합니다.
{ "config": { "softwareConfig": { "envVariables": { "VAR_NAME": "VAR_VALUE" } } } }
다음과 같이 바꿉니다.
VAR_NAME
을 환경 변수의 이름으로 바꿉니다.VAR_VALUE
를 환경 변수 값으로 바꿉니다.- 변수를 두 개 이상 추가하려면
envVariables
에 변수 항목을 더 추가합니다.
예를 들면 다음과 같습니다.
// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.envVariables
{
"config": {
"softwareConfig": {
"envVariables": {
"EXAMPLE_VARIABLE": "True",
"ANOTHER_VARIABLE": "test"
}
}
}
}
Terraform
software_config
블록의 env_variables
블록은 환경 변수를 지정합니다.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
env_variables = {
VAR_NAME = "VAR_VALUE"
}
}
}
}
다음과 같이 바꿉니다.
ENVIRONMENT_NAME
을 환경 이름으로 바꿉니다.LOCATION
을 환경이 위치한 리전으로 바꿉니다.VAR_NAME
을 환경 변수의 이름으로 바꿉니다.VAR_VALUE
를 환경 변수 값으로 바꿉니다.- 변수를 두 개 이상 추가하려면
env_variables
에 변수 항목을 더 추가합니다.
예를 들면 다음과 같습니다.
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
env_variables = {
EXAMPLE_VARIABLE = "True"
ANOTHER_VARIABLE = "test"
}
}
}