Ativar o salvamento de registros no bucket do ambiente

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Esta página explica como ativar o salvamento de registros de tarefas do Airflow na para um ambiente novo ou atual.

Como opção, você pode ativar a sincronização de registros de tarefas para o bucket do seu ambiente de execução.

Antes de começar

  • A partir da versão 2.8.0 do Cloud Composer, todos os ambientes não armazenam registros de tarefas no bucket do ambiente por padrão. Os registros de tarefas ainda disponíveis no Cloud Logging e na interface do Airflow.

  • Se você ativar esse recurso, os registros serão salvos no Cloud Logging e no bucket do ambiente.

  • Quando você faz upgrade do ambiente, a configuração para salvar logs no bucket do ambiente não é alterada. Por exemplo, se você atualizar um ambiente que salvou registros no bucket do ambiente em uma versão posterior o ambiente continua salvando registros no bucket dele.

  • Se você desativar o salvamento de registros de tarefas no bucket do ambiente, os registros que já foram salvas no bucket do ambiente não serão excluídas automaticamente.

  • Para ativar ou desativar essa opção, use a Google Cloud CLI, a API Cloud Composer ou Terraform. Não é possível alterar essa opção no console do Google Cloud.

Ativar ou desativar o salvamento de registros de tarefas no bucket do ambiente ao criar um ambiente

gcloud

Ao criar um ambiente, os argumentos a seguir especificam como o Airflow registros de tarefas precisam ser salvos:

  • O argumento --disable-logs-in-cloud-logging-only permite salvar a tarefa do Airflow para o bucket do ambiente.
  • O argumento --enable-logs-in-cloud-logging-only desativa o salvamento de registros de tarefas do Airflow no bucket do ambiente. Os registros são salvos apenas o Cloud Logging.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-logs-in-cloud-logging-only

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.

Exemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --disable-logs-in-cloud-logging-only

API

Ao criar um ambiente, no recurso Ambiente > EnvironmentConfig > DataRetentionConfig > TaskLogsRetentionConfig, especifique como os registros de tarefas do Airflow precisam ser salvos:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE para salvar registros no bucket do ambiente e o Cloud Logging.
  • CLOUD_LOGGING_ONLY para salvar registros apenas no Cloud Logging.
{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que 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 você cria um ambiente, o campo storage_mode na O bloco task_logs_retention_config especifica como os registros de tarefas do Airflow precisam ser salvo:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE para salvar registros no bucket do ambiente e o Cloud Logging.
  • CLOUD_LOGGING_ONLY para salvar registros apenas no Cloud Logging.
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:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que 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"

      }
    }
  }
}

Ativar ou desativar o salvamento de registros de tarefas no bucket do ambiente atual

gcloud

Ao atualizar um ambiente, os seguintes argumentos ativam ou desativam a gravação de registros de tarefas do Airflow no bucket do ambiente:

  • O argumento --disable-logs-in-cloud-logging-only permite salvar registros de tarefas do Airflow no bucket do ambiente. Os registros são salvos no bucket do ambiente e no Cloud Logging.
  • O argumento --enable-logs-in-cloud-logging-only desativa o salvamento de registros de tarefas do Airflow no bucket do ambiente. Os registros são salvos apenas o Cloud Logging.

Para salvar registros do Airflow no bucket do ambiente:

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-logs-in-cloud-logging-only

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.

Exemplo:

gcloud composer environments update example-environment \
    --location us-central1 \
    --disable-logs-in-cloud-logging-only

API

  1. Crie uma solicitação de API environments.patch.

  2. Nesta solicitação:

    1. No parâmetro updateMask, especifique a máscara config.dataRetentionConfig.taskLogsRetentionConfig.storageMode.

    2. No corpo da solicitação, especifique como os registros de tarefas do Airflow precisam ser salvo:

      • CLOUD_LOGGING_AND_CLOUD_STORAGE para salvar registros nos arquivos o bucket e o Cloud Logging.
      • CLOUD_LOGGING_ONLY para salvar registros apenas no Cloud Logging.
{
  "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 registros de tarefas do Airflow precisam ser salvos:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE para salvar registros no bucket do ambiente e no Cloud Logging.
  • CLOUD_LOGGING_ONLY para salvar registros apenas no Cloud Logging.
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:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que 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"

      }
    }
  }
}

A seguir