Menentukan masa pemeliharaan

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Halaman ini menjelaskan cara menentukan periode pemeliharaan untuk lingkungan Anda.

Tentang masa pemeliharaan

Masa pemeliharaan adalah jangka waktu saat Anda mengizinkan Cloud Composer melakukan operasi pemeliharaan. Misalnya, Anda dapat memastikan bahwa eksekusi tugas penting Anda tidak terganggu dengan menentukan periode pemeliharaan di luar waktu jadwal DAG.

Dengan masa pemeliharaan, Anda memiliki kontrol atas jangka waktu saat pemeliharaan dapat terjadi untuk lingkungan Anda:

  • Jika Anda menentukan periode pemeliharaan kustom untuk lingkungan Anda, Cloud Composer akan melakukan pemeliharaan selama periode yang ditentukan ini.

  • Jika Anda tidak menentukan masa pemeliharaan untuk lingkungan Anda, Cloud Composer akan melakukan pemeliharaan kapan saja.

Cara kerja periode pemeliharaan

Masa pemeliharaan berfungsi dengan cara berikut:

  • Operasi pemeliharaan memerlukan waktu yang dialokasikan minimal 12 jam dalam satu minggu.

  • Anda dapat menggunakan beberapa slot waktu, tetapi durasi setiap slot harus minimal 4 jam.

  • Lingkungan Anda tetap tersedia selama masa pemeliharaan. Beberapa komponen lingkungan Anda mungkin tidak tersedia untuk sementara saat operasi pemeliharaan sedang berlangsung.

  • Waktu 12 jam diperlukan agar Cloud Composer memiliki cukup waktu untuk menjadwalkan dan melakukan semua operasi pemeliharaan. Hal ini tidak berarti bahwa operasi pemeliharaan berlangsung selama 12 jam penuh atau bahkan terjadi setiap minggu.

Anda tetap dapat menjalankan DAG selama periode pemeliharaan, asalkan dapat diterima bahwa beberapa tugas dapat terganggu dan dicoba lagi. Jika Anda menjalankan DAG selama masa pemeliharaan, pastikan Anda mengaktifkan percobaan ulang tugas. Anda dapat mengonfigurasi percobaan ulang tugas di tingkat konfigurasi Airflow, DAG, atau tugas.

Operasi pemeliharaan memiliki efek berikut pada lingkungan Anda:

  • UI Airflow mungkin tidak tersedia untuk sementara.

  • Beberapa parameter lingkungan Anda atau mengupgrade ke versi yang lebih baru mungkin tidak dapat dilakukan untuk sementara.

  • Kueri SQL langsung ke database Airflow mungkin memerlukan waktu lebih lama dari biasanya dan mungkin perlu dicoba lagi.

  • Beberapa tugas Airflow dapat terganggu. Setelah operasi pemeliharaan selesai, Airflow menjadwalkan percobaan ulang untuk tugas ini (jika tidak dikonfigurasi sebaliknya).

Masa pemeliharaan default

Secara default, lingkungan Cloud Composer 1 tidak memiliki periode pemeliharaan yang ditentukan jika Anda membuatnya menggunakan konsol, API, atau Terraform Google Cloud . Sebaiknya tentukan masa pemeliharaan untuk lingkungan baru dan yang sudah ada.

Jika Anda membuat lingkungan menggunakan gcloud CLI, lingkungan Anda memiliki jendela pemeliharaan default dari 00.00.00 hingga 04.00.00 (GMT) pada hari Jumat, Sabtu, dan Minggu setiap minggu.

Pemeliharaan di luar masa pemeliharaan

Cloud Composer dapat melakukan pemeliharaan di luar masa pemeliharaan yang dikonfigurasi dalam kasus berikut:

  • Dalam situasi darurat, misalnya, saat memperbaiki kerentanan keamanan yang kritis, beberapa operasi pemeliharaan mungkin dilakukan di luar masa pemeliharaan reguler.

  • Jika Cloud Composer tidak dapat melakukan operasi pemeliharaan rutin selama masa pemeliharaan selama 30 hari, Cloud Composer akan melakukan operasi pemeliharaan penting di luar masa pemeliharaan yang ditentukan. Ini adalah mekanisme penggantian untuk kasus ketika periode pemeliharaan salah dikonfigurasi dan Cloud Composer berulang kali tidak dapat melakukan pemeliharaan pada lingkungan.

Cara menggunakan masa pemeliharaan

Operasi pemeliharaan dapat memengaruhi eksekusi DAG dan tugas Airflow Anda, jadi sebaiknya lakukan hal berikut:

  1. Tentukan periode pemeliharaan untuk lingkungan Cloud Composer Anda.

  2. Jadwalkan pengoperasian DAG di luar masa pemeliharaan yang ditentukan menggunakan parameter start_date dan schedule di DAG Anda.

Menentukan masa pemeliharaan untuk lingkungan baru

Anda dapat menentukan masa pemeliharaan saat membuat lingkungan. Untuk mengetahui informasi selengkapnya, lihat Membuat lingkungan.

Menentukan masa pemeliharaan untuk lingkungan yang ada

Konsol

Untuk menentukan atau mengubah masa pemeliharaan lingkungan yang ada, perbarui lingkungan:

  1. Di konsol Google Cloud , buka halaman Environments.

    Buka Lingkungan

  2. Pilih lingkungan Anda.

  3. Buka tab Konfigurasi lingkungan.

  4. Di samping entri Maintenance windows, klik Edit.

  5. Dalam dialog Periode pemeliharaan, centang kotak Tetapkan waktu kustom untuk periode pemeliharaan.

  6. Tetapkan Waktu mulai, Zona waktu, Hari, dan Durasi, sehingga gabungan waktu untuk jadwal yang ditentukan setidaknya 12 jam dalam periode 7 hari. Misalnya, periode 4 jam setiap hari Senin, Rabu, dan Jumat memberikan jumlah waktu yang diperlukan.

  7. Klik Simpan dan tunggu hingga lingkungan Anda diperbarui.

gcloud

Saat Anda mengupdate lingkungan, argumen berikut menentukan parameter masa pemeliharaan:

  • --maintenance-window-start menetapkan waktu mulai masa pemeliharaan.
  • --maintenance-window-end menetapkan waktu berakhir masa pemeliharaan.
  • --maintenance-window-recurrence menetapkan pengulangan masa pemeliharaan.
gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --maintenance-window-start 'DATETIME_START' \
    --maintenance-window-end 'DATETIME_END' \
    --maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'

Ganti:

  • ENVIRONMENT_NAME dengan nama lingkungan.
  • DATETIME_START dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan.
  • DATETIME_END dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.
  • MAINTENANCE_RECURRENCE dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:

  • Format FREQ=DAILY menentukan pengulangan harian.

  • Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA menentukan pengulangan pada hari dalam seminggu yang dipilih.

Contoh berikut menentukan masa pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, dan Minggu. Tanggal 1 Januari 2023 diabaikan.

gcloud composer environments update example-environment \
  --location us-central1 \
  --maintenance-window-start '2023-01-01T01:00:00Z' \
  --maintenance-window-end '2023-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

API

  1. Buat permintaan API environments.patch.

  2. Dalam permintaan ini:

    1. Di parameter updateMask, tentukan masker config.maintenanceWindow.

    2. Dalam isi permintaan, tentukan parameter untuk periode pemeliharaan.

{
  "config": {
    "maintenanceWindow": {
      "startTime": "DATETIME_START",
      "endTime": "DATETIME_END",
      "recurrence": "MAINTENANCE_RECURRENCE"
    }
  }
}

Ganti:

  • DATETIME_START dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan.
  • DATETIME_END dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.
  • MAINTENANCE_RECURRENCE dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:

    • Format FREQ=DAILY menentukan pengulangan harian.
    • Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA menentukan pengulangan pada hari dalam seminggu yang dipilih.

Contoh berikut menentukan masa pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, Minggu. Tanggal 1 Januari 2023 diabaikan.

  // PATCH https://composer.googleapis.com/v1/projects/example-project/
  // locations/us-central1/environments/example-environment?updateMask=
  // config.maintenanceWindow

  {
    "config": {
      "maintenanceWindow": {
        "startTime": "2023-01-01T01:00:00Z",
        "endTime": "2023-01-01T07:00:00Z",
        "recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
      }
    }
  }

Terraform

Blok maintenance_window menentukan masa pemeliharaan untuk lingkungan Anda:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    maintenance_window {
      start_time = "DATETIME_START"
      end_time = "DATETIME_END"
      recurrence = "MAINTENANCE_RECURRENCE"
    }
  }
}

Ganti:

  • ENVIRONMENT_NAME dengan nama lingkungan.
  • LOCATION dengan region tempat lingkungan berada.
  • DATETIME_START dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan.
  • DATETIME_END dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.
  • MAINTENANCE_RECURRENCE dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:

    • Format FREQ=DAILY menentukan pengulangan harian.
    • Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA menentukan pengulangan pada hari dalam seminggu yang dipilih.

Contoh berikut menentukan masa pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, dan Minggu. Tanggal 1 Januari 2023 diabaikan.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    maintenance_window {
      start_time = "2023-01-01T01:00:00Z"
      end_time = "2023-01-01T07:00:00Z"
      recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    }
  }
}

Langkah berikutnya