Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Nesta página, explicamos como definir variáveis de ambiente no ambiente do Cloud Composer.
É possível usar variáveis de ambiente como alternativa às variáveis do Airflow ao fornecer configuração de tempo 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.
Por exemplo, é possível usar o nome de uma variável de ambiente em um comando
executado por um BashOperator, 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 que você especificar uma variável de ambiente, o Airflow continuará usando essa variável até você removê-la do ambiente.
O Cloud Composer 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, é possível 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 esses nomes.
AIRFLOW_DATABASE_VERSIONAIRFLOW_HOMEAIRFLOW_SRC_DIRAIRFLOW_WEBSERVERAUTO_GKECLOUDSDK_METRICS_ENVIRONMENTCLOUD_LOGGING_ONLYCOMPOSER_AGENT_BUILD_SERVICE_ACCOUNTCOMPOSER_ENVIRONMENTCOMPOSER_GKE_LOCATIONCOMPOSER_GKE_NAMECOMPOSER_GKE_ZONECOMPOSER_LOCATIONCOMPOSER_OPERATION_UUIDCOMPOSER_PYTHON_VERSIONCOMPOSER_VERSIONCONTAINER_NAMEC_FORCE_ROOTDAGS_FOLDERGCE_METADATA_TIMEOUTGCP_PROJECTGCP_TENANT_PROJECTGCSFUSE_EXTRACTEDGCS_BUCKETGKE_CLUSTER_NAMEGKE_IN_TENANTGOOGLE_APPLICATION_CREDENTIALSMAJOR_VERSIONMINOR_VERSIONPATHPIP_DISABLE_PIP_VERSION_CHECKPORTPROJECT_IDPYTHONPYCACHEPREFIXPYTHONWARNINGSREDIS_PASSWORDREDIS_PORTREDIS_USERSQL_DATABASESQL_HOSTSQL_INSTANCESQL_PASSWORDSQL_PROJECTSQL_REGIONSQL_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 em um ambiente atual:
No console Google Cloud , acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu 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 adicionar outra variável, clique em Adicionar variável de ambiente.
- Para excluir uma variável, passe o cursor sobre ela e clique em Excluir item.
gcloud
Os argumentos a seguir controlam as variáveis de ambiente:
--update-env-variablesespecifica uma lista separada por vírgulas de variáveis de ambiente a serem criadas ou atualizadas.--remove-env-variablesespecifica uma lista separada por vírgulas de variáveis de ambiente a serem excluídas.--clear-env-variablesexclui todas as variáveis de ambiente atuais.
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--update-env-variables=NAME=VALUE
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado;NAMEcom o nome da variável que você quer criar ou atualizar.VALUEcom 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 a máscaraconfig.softwareConfig.envVariablespara substituir todas as variáveis atuais pelas especificadas. As variáveis que você não especificar serão excluídas.No corpo da solicitação, especifique as variáveis e os valores delas:
{ "config": { "softwareConfig": { "envVariables": { "VAR_NAME": "VAR_VALUE" } } } }Substitua:
VAR_NAMEpelo nome da variável de ambiente;VAR_VALUEpelo valor da variável de ambiente.- Para adicionar mais de uma variável, adicione entradas extras para variáveis
em
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" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
env_variables = {
VAR_NAME = "VAR_VALUE"
}
}
}
}
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado;VAR_NAMEpelo nome da variável de ambiente;VAR_VALUEpelo valor da variável de ambiente.- Para adicionar mais de uma variável, adicione entradas extras para variáveis
em
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"
}
}
}
}