Defina as variáveis de ambiente

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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 ambiente de execução do Airflow ou dos DAGs.

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

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: Você precisa definir os ambientes SENDGRID_API_KEY e SENDGRID_MAIL_FROM variáveis.

Formato do 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 alterem o Apache Airflow de configuração do Terraform.

As variáveis não podem usar o formato AIRFLOW__{SECTION}__{KEY} nem corresponder ao expressão regular AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+. Por exemplo, não é possível para 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 Cloud Composer. É 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_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
.

Definir variáveis de ambiente para novos ambientes

Você pode 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 console do Google Cloud, 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, altere ou exclua as variáveis de ambiente:

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

gcloud

Os seguintes argumentos controlam as variáveis de ambiente:

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

  • --remove-env-variables especifica uma lista separada por vírgulas de objetos variáveis 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 por 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 Máscara config.softwareConfig.envVariables para substituir todas as já existentes variáveis com as variáveis especificadas. Variáveis que você não especifica são excluídos.

  2. No corpo da solicitação, especifique as variáveis e os 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 elas para envVariables.

Exemplo:

// PATCH https://composer.googleapis.com/v1beta1/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 variáveis de ambiente.

resource "google_composer_environment" "example" {
  provider = google-beta
  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 elas para env_variables.

Exemplo:

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"
      }
    }
  }
}

A seguir