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, O Airflow continua usando essa variável até que você a remova do 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 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 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 definir AIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW
.
Em vez disso, substitua as opções de configuração do Airflow.
Variáveis reservadas
Os nomes de variável 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 existente:
No console do Google Cloud, acesse a página Ambientes.
Na lista de ambientes, clique no nome do ambiente. A página Detalhes do ambiente é aberta.
Acesse a guia Variáveis de ambiente e clique em Editar.
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 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 ambienteLOCATION
pela região em que o ambiente está localizado;NAME
pelo nome da variável que você quer criar ou atualizar.VALUE
com o 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:
No parâmetro
updateMask
, especifique Máscaraconfig.softwareConfig.envVariables
para substituir todas as já existentes variáveis com as variáveis especificadas. Variáveis que você não especifica sejam excluídos.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/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 ambienteLOCATION
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" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
env_variables = {
EXAMPLE_VARIABLE = "True"
ANOTHER_VARIABLE = "test"
}
}
}
}