Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
このページでは、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_VERSIONAIRFLOW_HOMEAIRFLOW_SRC_DIRAIRFLOW_WEBSERVERAUTO_GKECLOUDSDK_METRICS_ENVIRONMENTCLOUD_LOGGING_ONLYCOMPOSER_AGENT_BUILD_SERVICE_ACCOUNTCOMPOSER_ENVIRONMENTCOMPOSER_GKE_LOCATIONCOMPOSER_GKE_NAMECOMPOSER_GKE_ZONECOMPOSER_LOCATIONCOMPOSER_OPERATION_UUIDCOMPOSER_PYTHON_VERSIONCOMPOSER_VERSIONCONTAINER_NAMEC_FORCE_ROOTDAGS_FOLDERGCE_METADATA_TIMEOUTGCP_PROJECTGCP_TENANT_PROJECTGCSFUSE_EXTRACTEDGCS_BUCKETGKE_CLUSTER_NAMEGKE_IN_TENANTGOOGLE_APPLICATION_CREDENTIALSMAJOR_VERSIONMINOR_VERSIONPATHPIP_DISABLE_PIP_VERSION_CHECKPORTPROJECT_IDPYTHONPYCACHEPREFIXPYTHONWARNINGSREDIS_PASSWORDREDIS_PORTREDIS_USERSQL_DATABASESQL_HOSTSQL_INSTANCESQL_PASSWORDSQL_PROJECTSQL_REGIONSQL_USER
新しい環境に環境変数を設定する
環境変数は、環境の作成時に指定できます。詳細については、環境の作成をご覧ください。
既存の環境に環境変数を設定する
Console
既存の環境に環境変数を設定するには、次の手順を行います。
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" {
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 {
software_config {
env_variables = {
EXAMPLE_VARIABLE = "True"
ANOTHER_VARIABLE = "test"
}
}
}
}