Defina as variáveis de ambiente

Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)

Nesta página, explicamos como definir variáveis de ambiente no ambiente do Airflow gerenciado.

Você pode usar variáveis de ambiente como alternativa às variáveis do Airflow ao fornecer a configuração de ambiente de execução para seus DAGs. As variáveis do Airflow são definidas no banco de dados do Airflow, enquanto as variáveis de ambiente são definidas no contêiner do worker do Airflow.

Como exemplo, você pode usar o nome de uma variável de ambiente no estado em que se encontra em um comando executado por um BashOperator ou receber esse valor do objeto os.environ no DAG ou usar uma variável do Airflow.

As variáveis de ambiente são persistentes. Depois de especificar uma variável de ambiente, o Airflow continua usando até que você a remova do ambiente.

O Serviço gerenciado para Apache Airflow define as próprias variáveis de ambiente reservadas para controlar ambientes.

Formato de nome

As variáveis de ambiente precisam corresponder à expressão regular [a-zA-Z_][a-zA-Z0-9_]*.

Opções de configuração do Airflow

Não é possível especificar variáveis que mudam as opções de configuração do Apache Airflow.

As variáveis não podem usar o formato AIRFLOW__{SECTION}__{KEY} nem corresponder à expressão regular AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+. Por exemplo, não é possível definir AIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW.

Em vez disso, você pode substituir as opções de configuração do Airflow.

Variáveis reservadas

Os nomes de variáveis a seguir são reservados pelo Airflow gerenciado. Não é possível criar variáveis com esses nomes.

  • 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

Definir variáveis de ambiente para novos ambientes

É possível especificar variáveis de ambiente ao criar um ambiente. Para mais informações, consulte Criar ambientes.

Definir variáveis de ambiente para ambientes atuais

Console

Para definir variáveis de ambiente para um ambiente atual:

  1. No Google Cloud console, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Variáveis de ambiente e clique em Editar.

  4. Adicione, mude ou exclua variáveis de ambiente:

    • No campo Nome, especifique o nome da variável.
    • No campo Valor, especifique o valor da variável.
    • Para adicionar outra variável, clique em Adicionar variável de ambiente.
    • Para excluir uma variável, mantenha o ponteiro sobre uma variável e clique em Excluir item.

gcloud

Os argumentos a seguir controlam as variáveis de ambiente:

  • --update-env-variables especifica uma lista separada por vírgulas de variáveis de ambiente a serem criadas ou atualizadas.

  • --remove-env-variables especifica uma lista separada por vírgulas de variáveis de ambiente a serem excluídas.

  • --clear-env-variables exclui todas as variáveis de ambiente atuais.

gcloud composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --update-env-variables=NAME=VALUE

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado
  • NAME pelo nome da variável que você quer criar ou atualizar
  • VALUE pelo valor da variável
  • Para adicionar mais de uma variável, separe as definições com vírgulas: NAME=VALUE,NAME=VALUE,....

Exemplo:

gcloud composer environments update \
  example-environment \
  --location us-central1 \
  --update-env-variables=EXAMPLE_VARIABLE=True,ANOTHER_VARIABLE=test

API

Crie uma solicitação de API environments.patch.

Nesta solicitação:

  1. No parâmetro updateMask, especifique a máscara config.softwareConfig.envVariables para substituir todas as variáveis atuais pelas especificadas. As variáveis não especificadas são excluídas.

  2. No corpo da solicitação, especifique as variáveis e os valores delas:

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

    Substitua:

    • VAR_NAME pelo nome da variável de ambiente
    • VAR_VALUE pelo valor da variável de ambiente
    • Para adicionar mais de uma variável, adicione entradas extras para variáveis a envVariables.

Exemplo:

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

O bloco env_variables no bloco software_config especifica as variáveis de ambiente.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }

    }
  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado
  • VAR_NAME pelo nome da variável de ambiente
  • VAR_VALUE pelo valor da variável de ambiente
  • Para adicionar mais de uma variável, adicione entradas extras para variáveis a env_variables.

Exemplo:

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"

  config {

    software_config {

      env_variables = {
        EXAMPLE_VARIABLE = "True"
        ANOTHER_VARIABLE = "test"
      }
    }
  }
}

A seguir