Aktifkan penyimpanan log ke bucket lingkungan

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Halaman ini menjelaskan cara mengaktifkan penyimpanan log tugas Airflow ke bucket untuk lingkungan baru atau yang sudah ada.

Sebagai opsi, Anda dapat mengaktifkan sinkronisasi log tugas ke bucket lingkungan.

Sebelum memulai

  • Mulai dari Cloud Composer versi 2.8.0, semua lingkungan tidak menyimpan log tugas di bucket lingkungan secara default. Log tugas masih yang tersedia di UI Cloud Logging dan Airflow.

  • Jika Anda mengaktifkan fitur ini, log akan disimpan ke Cloud Logging dan bucket lingkungan.

  • Saat Anda mengupgrade lingkungan, konfigurasi untuk menyimpan log di bucket lingkungan tidak berubah. Misalnya, jika Anda mengupgrade yang menyimpan log ke bucket lingkungan ke versi yang lebih baru, lingkungan akan terus menyimpan log ke bucket lingkungan.

  • Jika Anda menonaktifkan penyimpanan log tugas ke bucket lingkungan, log yang yang sudah disimpan ke bucket lingkungan tidak dihapus secara otomatis.

  • Untuk mengaktifkan atau menonaktifkan opsi ini, Anda dapat menggunakan Google Cloud CLI, Cloud Composer API, atau Terraform. Opsi ini tidak dapat diubah melalui Konsol Google Cloud.

Mengaktifkan atau menonaktifkan penyimpanan log tugas ke bucket lingkungan saat membuat lingkungan

gcloud

Saat Anda membuat lingkungan, argumen berikut menentukan cara Airflow log tugas harus disimpan:

  • Argumen --disable-logs-in-cloud-logging-only memungkinkan penyimpanan tugas Airflow log ke bucket lingkungan.
  • Argumen --enable-logs-in-cloud-logging-only menonaktifkan penyimpanan tugas Airflow log ke bucket lingkungan. Log hanya disimpan ke Cloud Logging.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-logs-in-cloud-logging-only

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan Anda.
  • LOCATION: wilayah tempat lingkungan berada.

Contoh:

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

API

Saat Anda membuat lingkungan, di bagian Lingkungan > EnvironmentConfig > DataRetentionConfig > TaskLogsRetentionConfig, menentukan cara penyimpanan log tugas Airflow:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE untuk menyimpan log ke bucket lingkungan dan Cloud Logging.
  • CLOUD_LOGGING_ONLY untuk menyimpan log hanya di Cloud Logging.
{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan Anda.
  • LOCATION: wilayah tempat lingkungan berada.
  • PROJECT_ID: Project ID.

Contoh:

// 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

Saat Anda membuat lingkungan, kolom storage_mode di Blok task_logs_retention_config menentukan cara log tugas Airflow harus disimpan:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE untuk menyimpan log ke bucket lingkungan dan Cloud Logging.
  • CLOUD_LOGGING_ONLY untuk menyimpan log hanya di 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"

      }
    }
  }

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan Anda.
  • LOCATION: wilayah tempat lingkungan berada.

Contoh:

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"

      }
    }
  }
}

Mengaktifkan atau menonaktifkan penyimpanan log tugas ke bucket lingkungan untuk lingkungan yang ada

gcloud

Saat Anda mengupdate lingkungan, argumen berikut akan mengaktifkan atau menonaktifkan menyimpan log tugas Airflow ke bucket lingkungan:

  • Argumen --disable-logs-in-cloud-logging-only memungkinkan penyimpanan tugas Airflow log ke bucket lingkungan. Log disimpan ke bucket lingkungan dan ke Cloud Logging.
  • Argumen --enable-logs-in-cloud-logging-only menonaktifkan penyimpanan tugas Airflow log ke bucket lingkungan. Log hanya disimpan ke Cloud Logging.

Untuk menyimpan log Airflow di bucket lingkungan:

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

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan Anda.
  • LOCATION: wilayah tempat lingkungan berada.

Contoh:

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

API

  1. Buat permintaan environments.patch API.

  2. Dalam permintaan ini:

    1. Di parameter updateMask, tentukan config.dataRetentionConfig.taskLogsRetentionConfig.storageMode {i>mask<i} ini.

    2. Dalam isi permintaan, tentukan bagaimana log tugas Airflow harus disimpan:

      • CLOUD_LOGGING_AND_CLOUD_STORAGE untuk menyimpan log ke bucket dan Cloud Logging.
      • CLOUD_LOGGING_ONLY untuk menyimpan log hanya di Cloud Logging.
{
  "config": {
    "dataRetentionConfig": {
      "taskLogsRetentionConfig": {
        "storageMode": "CLOUD_LOGGING_AND_CLOUD_STORAGE"
      }
    }
  }
}

Contoh:

// 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

Di blok task_logs_retention_config, di kolom storage_mode, tentukan cara menyimpan log tugas Airflow:

  • CLOUD_LOGGING_AND_CLOUD_STORAGE untuk menyimpan log ke bucket lingkungan dan Cloud Logging.
  • CLOUD_LOGGING_ONLY untuk menyimpan log hanya di 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"

      }
    }
  }

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan Anda.
  • LOCATION: wilayah tempat lingkungan berada.

Contoh:

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"

      }
    }
  }
}

Langkah selanjutnya