Defina as variáveis de ambiente

Cloud Composer 1 | Cloud Composer 2

Nesta página, explicamos como definir variáveis de ambiente no seu ambiente do Cloud Composer.

O Cloud Composer usa as variáveis de ambiente para alterar o comportamento do ambiente de execução do Airflow ou dos DAGs.

As variáveis de ambiente são persistentes. Depois que você especifica uma variável de ambiente, o Airflow continua a usá-la até que você a remova.

Por exemplo, o Cloud Composer usa o módulo Sendgrid do Apache Airflow para notificações por e-mail. Para configurar notificações por e-mail, defina as variáveis de ambiente SENDGRID_API_KEY e SENDGRID_MAIL_FROM.

Formato de nome

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

Não especifique substituições de configuração do Apache Airflow nas variáveis de ambiente. Isso significa que as variáveis não podem usar o formato AIRFLOW__{SECTION}__{KEY} ou corresponder à expressão regular AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+.

Variáveis reservadas

Os nomes a seguir estão reservados e não podem ser usados:

  • AIRFLOW_HOME
  • AIRFLOW_SRC_DIR
  • C_FORCE_ROOT
  • CLOUDSDK_METRICS_ENVIRONMENT
  • COMPOSER_ENVIRONMENT
  • COMPOSER_GKE_NAME
  • COMPOSER_GKE_ZONE
  • COMPOSER_LOCATION
  • COMPOSER_PYTHON_VERSION
  • CONTAINER_NAME
  • DAGS_FOLDER
  • GCP_PROJECT
  • GCS_BUCKET
  • GKE_CLUSTER_NAME
  • GOOGLE_APPLICATION_CREDENTIALS
  • KUBERNETES_PORT
  • KUBERNETES_PORT_443_TCP_PROTO
  • KUBERNETES_PORT_443_TCP_ADDR
  • KUBERNETES_PORT_443_TCP_PORT
  • KUBERNETES_PORT_443_TCP
  • KUBERNETES_SERVICE_HOST
  • KUBERNETES_SERVICE_PORT
  • KUBERNETES_SERVICE_PORT_HTTPS
  • MAJOR_VERSION
  • MINOR_VERSION
  • PROJECT_ID
  • SQL_DATABASE
  • SQL_INSTANCE
  • SQL_HOST
  • 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, faça o seguinte:

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

    Acessar "Ambientes"

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

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

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

    • No campo Nome, especifique o nome da variável.
    • No campo Value, especifique o valor da variável.
    • Para incluir uma variável extra, clique em Adicionar variável de ambiente.
    • Para excluir uma variável, mantenha o ponteiro sobre ela 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 existentes.

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

    • Use a máscara config.softwareConfig.envVariables para substituir todas as variáveis atuais pelas especificadas. As variáveis que você não especificar serão excluídas.
    • Use config.softwareConfig.envVariables.VAR_NAME para adicionar ou atualizar uma variável específica. Para adicionar ou atualizar diversas variáveis, especifique várias máscaras com vírgulas.
  2. No corpo da solicitação, especifique as variáveis e os respectivos valores:

    {
      "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, inclua entradas extras para variáveis a envVariables.

Exemplo:

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.envVariables.EXAMPLE_VARIABLE,
// config.softwareConfig.envVariables.ANOTHER_VARIABLE
{
  "config": {
    "softwareConfig": {
      "envVariables": {
        "EXAMPLE_VARIABLE": "True",
        "ANOTHER_VARIABLE": "test"
      }
    }
  }
}

Terraform

O bloco env_variables no bloco software_config especifica 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, inclua entradas extras para variáveis a env_variables.

Exemplo:

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

  config {

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

  }
}

A seguir