Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
이 페이지에서는 Cloud Composer 환경에서 환경 변수를 설정하는 방법을 설명합니다.
DAG의 런타임 구성을 제공할 때 Airflow 변수 대신 환경 변수를 사용할 수 있습니다. Airflow 변수는 Airflow 데이터베이스에 설정되고 환경 변수는 Airflow 작업자의 컨테이너에 설정됩니다.
예를 들어 BashOperator에서 실행하는 명령어에서 환경 변수의 이름을 그대로 사용하거나 DAG의 os.environ
객체에서 이 값을 가져오거나 대신 Airflow 변수를 사용할 수 있습니다.
환경 변수는 영구적입니다. 환경 변수를 지정하면 해당 환경에서 삭제될 때까지 Airflow에서 계속 사용됩니다.
Cloud Composer는 환경을 제어하기 위해 자체 예약된 환경 변수를 설정합니다.
이름 형식
환경 변수는 정규 표현식 [a-zA-Z_][a-zA-Z0-9_]*
와 일치해야 합니다.
Airflow 구성 옵션
Apache Airflow 구성 옵션을 변경하는 변수를 지정할 수 없습니다.
변수는 AIRFLOW__{SECTION}__{KEY}
형식을 사용하거나 정규 표현식 AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+
와 일치할 수 없습니다. 예를 들어 AIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW
를 설정할 수 없습니다.
대신 사용자는 Airflow 구성 옵션을 재정의할 수 있습니다.
예약된 변수
다음 변수 이름은 Cloud Composer에 예약되어 있습니다. 이러한 이름으로 변수를 만들 수 없습니다.
AIRFLOW_DATABASE_VERSION
AIRFLOW_HOME
AIRFLOW_SRC_DIR
AIRFLOW_WEBSERVER
AUTO_GKE
CLOUDSDK_METRICS_ENVIRONMENT
CLOUD_LOGGING_ONLY
COMPOSER_ENVIRONMENT
COMPOSER_GKE_LOCATION
COMPOSER_GKE_NAME
COMPOSER_GKE_ZONE
COMPOSER_LOCATION
COMPOSER_OPERATION_UUID
COMPOSER_PYTHON_VERSION
COMPOSER_VERSION
CONTAINER_NAME
C_FORCE_ROOT
DAGS_FOLDER
GCP_PROJECT
GCP_TENANT_PROJECT
GCSFUSE_EXTRACTED
GCS_BUCKET
GKE_CLUSTER_NAME
GKE_IN_TENANT
GOOGLE_APPLICATION_CREDENTIALS
MAJOR_VERSION
MINOR_VERSION
PATH
PIP_DISABLE_PIP_VERSION_CHECK
PORT
PROJECT_ID
PYTHONPYCACHEPREFIX
PYTHONWARNINGS
SQL_DATABASE
SQL_HOST
SQL_INSTANCE
SQL_PASSWORD
SQL_PROJECT
SQL_REGION
SQL_USER
새 환경의 환경 변수 설정
환경을 만들 때 환경 변수를 지정할 수 있습니다. 자세한 내용은 환경 만들기를 참조하세요.
기존 환경의 환경 변수 설정
콘솔
기존 환경의 환경 변수를 설정하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 환경 페이지로 이동합니다.
환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.
환경 변수 탭으로 이동하여 수정을 클릭합니다.
환경의 환경 변수를 추가, 변경 또는 삭제합니다.
- 이름 필드에 변수 이름을 지정합니다.
- 값 필드에 변수 값을 지정합니다.
- 변수를 더 추가하려면 환경 변수 추가를 클릭합니다.
- 변수를 삭제하려면 마우스 포인터를 변수 위에 올려놓고 항목 삭제를 클릭합니다.
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/v1/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" {
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" {
name = "example-environment"
region = "us-central1"
config {
software_config {
env_variables = {
EXAMPLE_VARIABLE = "True"
ANOTHER_VARIABLE = "test"
}
}
}
}