Ative a gravação de registos no contentor do ambiente

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

  1. Construa um pedido de API environments.patch.

  2. Neste pedido:

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

    2. 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"

      }
    }
  }
}

O que se segue?