Menentukan masa pemeliharaan

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Halaman ini menjelaskan cara menentukan periode pemeliharaan untuk lingkungan Anda.

Tentang masa pemeliharaan

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

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

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

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

Yang terjadi selama masa pemeliharaan

Saat menentukan periode pemeliharaan, Anda menyediakan waktu minimal 12 jam dalam satu minggu untuk operasi pemeliharaan:

  • 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 menjalankan semua operasi pemeliharaan. Hal ini tidak berarti bahwa operasi pemeliharaan memerlukan waktu 12 jam penuh atau bahkan terjadi setiap minggu.

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

Operasi pemeliharaan memiliki efek berikut pada lingkungan Anda:

  • UI Airflow mungkin tidak tersedia untuk sementara.

  • Perubahan pada beberapa parameter lingkungan atau upgrade 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).

Masa pemeliharaan default

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

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

Cara menggunakan periode pemeliharaan

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

  1. Tentukan periode pemeliharaan untuk lingkungan Cloud Composer Anda.

  2. Jadwalkan DAG berjalan di luar periode pemeliharaan yang ditentukan menggunakan parameter start_date dan schedule_interval di DAG Anda.

Menentukan periode pemeliharaan untuk lingkungan baru

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

Menentukan periode pemeliharaan untuk lingkungan yang ada

Konsol

Untuk menentukan atau mengubah periode pemeliharaan untuk 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. Di dialog Maintenance windows, centang kotak Set custom time for maintenance windows.

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

  7. Klik Save dan tunggu hingga lingkungan Anda diperbarui.

gcloud

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

  • --maintenance-window-start menetapkan waktu mulai masa pemeliharaan.
  • --maintenance-window-end menetapkan waktu akhir masa pemeliharaan.
  • --maintenance-window-recurrence menetapkan pengulangan periode 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 periode pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, dan Minggu. Tanggal 1 Januari 2023 akan 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. Dalam parameter updateMask, tentukan mask 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 hari yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan.
  • DATETIME_END dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu hari 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 periode pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, Minggu. Tanggal 1 Januari 2023 akan 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 periode 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 tersebut berada.
  • DATETIME_START dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu hari yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan.
  • DATETIME_END dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu hari 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 periode pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, dan Minggu. Tanggal 1 Januari 2023 akan 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 selanjutnya