Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página explica como ativar a poupança de registos de tarefas do Airflow no contentor do ambiente para um ambiente novo ou existente.
Em alternativa, pode ativar a sincronização dos registos de tarefas com o contentor do ambiente.
Acerca da poupança de registos no contentor do ambiente
A poupança de registos no contentor do ambiente funciona da seguinte forma:
Desativado (predefinição): os registos de tarefas estão disponíveis no Cloud Logging. Pode vê-los na IU do Airflow e nos Registos na nuvem. Os ficheiros de registo de tarefas não são guardados no contentor do ambiente.
Se a opção de guardar registos no contentor do ambiente tiver sido desativada e a ativar, os registos de tarefas apresentados na IU do Airflow não mostram entradas de registos que foram geradas enquanto os registos eram guardados apenas no Cloud Logging. Estes registos não são perdidos e continuam disponíveis no Cloud Logging.
Ativado: os registos de tarefas são guardados no Cloud Logging e no contentor do ambiente. Pode vê-los na IU do Airflow e no Cloud Logging. O contentor do ambiente armazena ficheiros com estes registos.
Se a opção de guardar registos no contentor do ambiente estiver ativada e a desativar, os registos que já foram guardados no contentor do ambiente não são eliminados e permanecem armazenados no contentor.
Antes de começar
A partir da versão 2.8.0 do Cloud Composer, por predefinição, todos os ambientes não armazenam registos de tarefas no contentor do ambiente. Os registos de tarefas continuam disponíveis no Cloud Logging e na IU do Airflow.
Quando atualiza o ambiente, a configuração para guardar registos no contentor do ambiente não é alterada. Por exemplo, se atualizar um ambiente que guardou registos no contentor do ambiente para uma versão posterior, o ambiente continua a guardar registos no contentor do ambiente.
Para ativar ou desativar esta opção, pode usar a CLI gcloud, a API Cloud Composer ou o Terraform. Não é possível alterar esta opção através da consola Google Cloud .
Ative ou desative a opção de guardar registos de tarefas no contentor do ambiente quando cria um ambiente
gcloud
Quando cria um ambiente, os seguintes argumentos especificam como os registos de tarefas do Airflow têm de ser guardados:
- O argumento
--disable-logs-in-cloud-logging-only
permite guardar registos de tarefas do Airflow no contentor do ambiente. - O argumento
--enable-logs-in-cloud-logging-only
desativa a gravação dos registos de tarefas do Airflow no contentor do ambiente. Os registos são guardados apenas no Cloud Logging.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--disable-logs-in-cloud-logging-only
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do seu ambiente.LOCATION
: a região onde o ambiente está localizado.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--disable-logs-in-cloud-logging-only
API
Quando cria um ambiente, no recurso Environment > EnvironmentConfig > DataRetentionConfig > TaskLogsRetentionConfig, especifique como os registos de tarefas do Airflow têm de ser guardados:
CLOUD_LOGGING_AND_CLOUD_STORAGE
para guardar registos no contentor do ambiente e no Cloud Logging.CLOUD_LOGGING_ONLY
para guardar registos apenas em Registos na nuvem.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"dataRetentionConfig": {
"taskLogsRetentionConfig": {
"storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do seu ambiente.LOCATION
: a região onde o ambiente está localizado.PROJECT_ID
: o ID do projeto.
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"dataRetentionConfig": {
"taskLogsRetentionConfig": {
"storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
Terraform
Quando cria um ambiente, o campo storage_mode
no bloco task_logs_retention_config
especifica como os registos de tarefas do Airflow têm de ser guardados:
CLOUD_LOGGING_AND_CLOUD_STORAGE
para guardar registos no contentor do ambiente e no Cloud Logging.CLOUD_LOGGING_ONLY
para guardar registos apenas em Registos na nuvem.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
data_retention_config {
task_logs_retention_config {
storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do seu ambiente.LOCATION
: a região onde o ambiente está localizado.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
data_retention_config {
task_logs_retention_config {
storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
Ative ou desative a poupança de registos de tarefas no contentor do ambiente para um ambiente existente
gcloud
Quando atualiza um ambiente, os seguintes argumentos ativam ou desativam a gravação de registos de tarefas do Airflow no contentor do ambiente:
- O argumento
--disable-logs-in-cloud-logging-only
permite guardar registos de tarefas do Airflow no contentor do ambiente. Os registos são guardados no contentor do ambiente e no Cloud Logging. - O argumento
--enable-logs-in-cloud-logging-only
desativa a gravação dos registos de tarefas do Airflow no contentor do ambiente. Os registos são guardados apenas no Cloud Logging.
Para guardar os registos do Airflow no contentor do ambiente:
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-logs-in-cloud-logging-only
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do seu ambiente.LOCATION
: a região onde o ambiente está localizado.
Exemplo:
gcloud composer environments update example-environment \
--location us-central1 \
--disable-logs-in-cloud-logging-only
API
Construa um pedido de API
environments.patch
.Neste pedido:
No parâmetro
updateMask
, especifique a máscara.config.dataRetentionConfig.taskLogsRetentionConfig.storageMode
No corpo do pedido, especifique como os registos de tarefas do Airflow têm de ser guardados:
CLOUD_LOGGING_AND_CLOUD_STORAGE
para guardar registos no contentor do ambiente e no Cloud Logging.CLOUD_LOGGING_ONLY
para guardar registos apenas em Registos na nuvem.
{
"config": {
"dataRetentionConfig": {
"taskLogsRetentionConfig": {
"storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
Exemplo:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.dataRetentionConfig.taskLogsRetentionConfig.storageMode
{
"config": {
"dataRetentionConfig": {
"taskLogsRetentionConfig": {
"storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}
Terraform
No bloco task_logs_retention_config
, no campo storage_mode
, especifique como os registos de tarefas do Airflow têm de ser guardados:
CLOUD_LOGGING_AND_CLOUD_STORAGE
para guardar registos no contentor do ambiente e no Cloud Logging.CLOUD_LOGGING_ONLY
para guardar registos apenas em Registos na nuvem.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
data_retention_config {
task_logs_retention_config {
storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
Substitua o seguinte:
ENVIRONMENT_NAME
: o nome do seu ambiente.LOCATION
: a região onde o ambiente está localizado.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
data_retention_config {
task_logs_retention_config {
storage_mode = "CLOUD_LOGGING_AND_CLOUD_STORAGE"
}
}
}
}