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 masa pemeliharaan kustom untuk lingkungan Anda, Cloud Composer akan melakukan pemeliharaan selama periode yang ditentukan ini.
Jika Anda tidak menentukan masa pemeliharaan kustom untuk lingkungan Anda, Cloud Composer akan melakukan pemeliharaan selama masa pemeliharaan default.
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.
Tugas yang memerlukan waktu kurang dari 55 menit untuk dieksekusi umumnya tidak terpengaruh oleh operasi pemeliharaan, tetapi tugas tersebut tetap harus mengaktifkan percobaan ulang agar dapat bertahan dari mulai ulang penjadwal. Scheduler dapat dimulai ulang selama operasi Cloud Composer standar, di luar periode pemeliharaan.
Cloud Composer memberi tahu pekerja Airflow bahwa operasi pemeliharaan akan segera terjadi. Worker Airflow menyelesaikan tugas yang sudah dimulai dan tidak memilih tugas baru. Tugas baru ini dijalankan oleh pekerja Airflow yang tidak menjalani operasi pemeliharaan.
Jika Anda menggunakan lingkungan yang sangat tangguh, komponen Airflow di lingkungan Anda kemungkinan akan dimulai ulang pada waktu yang berbeda selama operasi pemeliharaan (hal ini bergantung pada jenis operasi pemeliharaan). Secara keseluruhan, penggunaan lingkungan yang sangat tangguh akan mengurangi waktu non-aktif lingkungan Anda selama operasi pemeliharaan.
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 yang memerlukan waktu lebih dari 55 menit untuk dieksekusi dapat terganggu. Setelah operasi pemeliharaan selesai, Airflow menjadwalkan percobaan ulang untuk tugas ini (jika tidak dikonfigurasi sebaliknya).
Masa pemeliharaan default
Masa pemeliharaan default di Cloud Composer 2 adalah 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:
Tentukan periode pemeliharaan untuk lingkungan Cloud Composer Anda.
Jadwalkan pengoperasian DAG di luar masa pemeliharaan yang ditentukan menggunakan parameter
start_datedanscheduledi 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:
Di konsol Google Cloud , buka halaman Environments.
Pilih lingkungan Anda.
Buka tab Konfigurasi lingkungan.
Di samping entri Maintenance windows, klik Edit.
Dalam dialog Periode pemeliharaan, centang kotak Tetapkan waktu kustom untuk periode pemeliharaan.
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.
Klik Simpan dan tunggu hingga lingkungan Anda diperbarui.
gcloud
Saat Anda mengupdate lingkungan, argumen berikut menentukan parameter masa pemeliharaan:
--maintenance-window-startmenetapkan waktu mulai masa pemeliharaan.--maintenance-window-endmenetapkan waktu berakhir masa pemeliharaan.--maintenance-window-recurrencemenetapkan 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_NAMEdengan nama lingkungan.DATETIME_STARTdengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan.DATETIME_ENDdengan 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_RECURRENCEdengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:Format
FREQ=DAILYmenentukan pengulangan harian.Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAmenentukan 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
Buat permintaan API
environments.patch.Dalam permintaan ini:
Di parameter
updateMask, tentukan maskerconfig.maintenanceWindow.Dalam isi permintaan, tentukan parameter untuk periode pemeliharaan.
{
"config": {
"maintenanceWindow": {
"startTime": "DATETIME_START",
"endTime": "DATETIME_END",
"recurrence": "MAINTENANCE_RECURRENCE"
}
}
}
Ganti:
DATETIME_STARTdengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan.DATETIME_ENDdengan 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_RECURRENCEdengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:- Format
FREQ=DAILYmenentukan pengulangan harian. - Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAmenentukan pengulangan pada hari dalam seminggu yang dipilih.
- Format
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_NAMEdengan nama lingkungan.LOCATIONdengan region tempat lingkungan berada.DATETIME_STARTdengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan.DATETIME_ENDdengan 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_RECURRENCEdengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:- Format
FREQ=DAILYmenentukan pengulangan harian. - Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAmenentukan pengulangan pada hari dalam seminggu yang dipilih.
- Format
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"
}
}
}