Set environment variables

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

This page explains how to set environment variables in yourCloud Composer environment.

You can use environment variables as an alternative toAirflow variables when providing runtime configurationfor your DAGs. Airflow variables are set in the Airflow database, whileenvironment variables are set in the Airflow worker's container.

As an example, you can use an environment variable's name as is in a commandthat is run by a BashOperator, or get this value from theos.environ objectin the DAG, or use an Airflow variable instead.

Environment variables are persistent. Once you specify an environment variable,Airflow keeps using it until you remove the variable from your environment.

Important: It's not possible to use environment variables to configure Airflow.Override Airflow configuration options instead.

Cloud Composer sets its own reserved environment variables for controllingenvironments.

Name format

Environment variables must match the regular expression[a-zA-Z_][a-zA-Z0-9_]*.

Airflow configuration options

It is not possible to specify variables that change Apache Airflowconfiguration options.

The variables cannot use theAIRFLOW__{SECTION}__{KEY} format or match theregular expressionAIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+. For example, it is notpossible to setAIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW.

Instead, you canoverride Airflow configuration options.

Reserved variables

The following variable names are reserved by Cloud Composer. It isnot possible to create variables with these names.

  • AIRFLOW_DATABASE_VERSION
  • AIRFLOW_HOME
  • AIRFLOW_SRC_DIR
  • AIRFLOW_WEBSERVER
  • AUTO_GKE
  • CLOUDSDK_METRICS_ENVIRONMENT
  • CLOUD_LOGGING_ONLY
  • COMPOSER_AGENT_BUILD_SERVICE_ACCOUNT
  • COMPOSER_ENVIRONMENT
  • COMPOSER_ENVIRONMENT_SIZE
  • 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
  • GCE_METADATA_TIMEOUT
  • 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

  • REDIS_PASSWORD

  • REDIS_PORT

  • REDIS_USER

  • SQL_DATABASE

  • SQL_HOST

  • SQL_INSTANCE

  • SQL_PASSWORD

  • SQL_PROJECT

  • SQL_REGION

  • SQL_USER

Caution: Cloud Composer uses these reserved names for variables thatare used by its processes. Don't refer to reserved names in your DAGs. Valuesof these variables can change without notice.

Set environment variables for new environments

You can specify environment variables when you create an environment. For moreinformation, seeCreate environments.

Set environment variables for existing environments

Console

To set environment variables for an existing environment:

  1. In Google Cloud console, go to theEnvironments page.

    Go to Environments

  2. In the list of environments, click the name of your environment.TheEnvironment details page opens.

  3. Go to theEnvironment variables tab and clickEdit.

  4. Add, change, or delete environment variables for your environment:

    • In theName field, specify the variable name.
    • In theValue field, specify the variable value.
    • To add an extra variable, clickAdd environment variable.
    • To delete a variable, hold the pointer over a variable, then clickDelete item.

gcloud

Following arguments control environment variables:

  • --update-env-variables specifies a comma-separated list of environmentvariables to create or update.

  • --remove-env-variables specifies a comma-separated list of environmentvariables to delete.

  • --clear-env-variables deletes all existing environment variables.

gcloudcomposerenvironmentsupdate\ENVIRONMENT_NAME\--locationLOCATION\--update-env-variables=NAME=VALUE

Replace:

  • ENVIRONMENT_NAME with the name of the environment.
  • LOCATION with the region where the environment is located.
  • NAME with the name of the variable that you want to create or update.
  • VALUE with the value for the variable.
  • To add more than one variable, separate the definitions with commas:NAME=VALUE,NAME=VALUE,....

Example:

gcloudcomposerenvironmentsupdate\example-environment\--locationus-central1\--update-env-variables=EXAMPLE_VARIABLE=True,ANOTHER_VARIABLE=test

API

Construct anenvironments.patch API request.

In this request:

  1. In theupdateMask parameter, specify theconfig.softwareConfig.envVariables mask to replace all existingvariables with the specified variables. Variables that you don't specifyare deleted.

  2. In the request body, specify variables and their values:

    {"config":{"softwareConfig":{"envVariables":{"VAR_NAME":"VAR_VALUE"}}}}

    Replace:

    • VAR_NAME with the name of the environment variable.
    • VAR_VALUE with the value of the environment variable.
    • To add more than one variable, add extra entries for variablestoenvVariables.

Example:

// 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

Theenv_variables block in thesoftware_config block specifiesenvironment variables.

resource"google_composer_environment""example"{name="ENVIRONMENT_NAME"region="LOCATION"config{software_config{env_variables={VAR_NAME="VAR_VALUE"}}}}

Replace:

  • ENVIRONMENT_NAME with the name of the environment.
  • LOCATION with the region where the environment is located.
  • VAR_NAME with the name of the environment variable.
  • VAR_VALUE with the value of the environment variable.
  • To add more than one variable, add extra entries for variablestoenv_variables.

Example:

resource"google_composer_environment""example"{name="example-environment"region="us-central1"config{software_config{env_variables={EXAMPLE_VARIABLE="True"ANOTHER_VARIABLE="test"}}}}

What's next

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-15 UTC.