Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página explica como definir variáveis de ambiente no seu ambiente do Cloud Composer.
Pode usar variáveis de ambiente como alternativa às variáveis do Airflow quando fornece a configuração de tempo de execução para os seus DAGs. As variáveis do Airflow são definidas na base de dados do Airflow, enquanto as variáveis de ambiente são definidas no contentor do trabalhador do Airflow.
Por exemplo, pode usar o nome de uma variável de ambiente tal como está num comando
executado por um BashOperator ou obter este 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 a usá-la até remover a variável do seu ambiente.
O Cloud Composer define as suas próprias variáveis de ambiente reservadas para controlar os ambientes.
Formato do nome
As variáveis de ambiente têm de 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 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 alternativa, pode substituir as opções de configuração do Airflow.
Variáveis reservadas
Os seguintes nomes de variáveis são reservados pelo Cloud Composer. Não é possível criar variáveis com estes 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_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
Defina variáveis de ambiente para novos ambientes
Pode especificar variáveis de ambiente quando cria um ambiente. Para mais informações, consulte o artigo Crie ambientes.
Defina variáveis de ambiente para ambientes existentes
Consola
Para definir variáveis de ambiente para um ambiente existente:
Na Google Cloud consola, aceda à página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.
Aceda ao separador Variáveis de ambiente e clique em Editar.
Adicione, altere ou elimine variáveis de ambiente para o seu ambiente:
- No campo Nome, especifique o nome da variável.
- No campo Valor, especifique o valor da variável.
- Para adicionar uma variável adicional, clique em Adicionar variável de ambiente.
- Para eliminar uma variável, mantenha o ponteiro sobre uma variável e, de seguida, clique em Eliminar item.
gcloud
Os seguintes argumentos controlam as variáveis de ambiente:
--update-env-variables
especifica uma lista de variáveis de ambiente separadas por vírgulas a criar ou atualizar.--remove-env-variables
especifica uma lista de variáveis de ambiente separadas por vírgulas a eliminar.--clear-env-variables
elimina todas as variáveis de ambiente existentes.
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--update-env-variables=NAME=VALUE
Substituir:
ENVIRONMENT_NAME
com o nome do ambiente.LOCATION
com a região onde o ambiente está localizado.NAME
com o nome da variável que quer criar ou atualizar.VALUE
com o valor da variável.- Para adicionar mais do que 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
Construa um pedido de API environments.patch
.
Neste pedido:
No parâmetro
updateMask
, especifique a máscaraconfig.softwareConfig.envVariables
para substituir todas as variáveis existentes pelas variáveis especificadas. As variáveis que não especificar são eliminadas.No corpo do pedido, especifique as variáveis e os respetivos valores:
{ "config": { "softwareConfig": { "envVariables": { "VAR_NAME": "VAR_VALUE" } } } }
Substituir:
VAR_NAME
com o nome da variável de ambiente.VAR_VALUE
com o valor da variável de ambiente.- Para adicionar mais de uma variável, adicione entradas adicionais 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"
}
}
}
}
Substituir:
ENVIRONMENT_NAME
com o nome do ambiente.LOCATION
com a região onde o ambiente está localizado.VAR_NAME
com o nome da variável de ambiente.VAR_VALUE
com o valor da variável de ambiente.- Para adicionar mais de uma variável, adicione entradas adicionais 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"
}
}
}
}