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:
Tentukan periode pemeliharaan untuk lingkungan Cloud Composer Anda.
Jadwalkan DAG berjalan di luar periode pemeliharaan yang ditentukan menggunakan parameter
start_date
danschedule_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:
Di konsol Google Cloud, buka halaman Environments.
Pilih lingkungan Anda.
Buka tab Konfigurasi lingkungan.
Di samping entri Maintenance windows, klik Edit.
Di dialog Maintenance windows, centang kotak Set custom time for maintenance windows.
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.
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
Buat permintaan API
environments.patch
.Dalam permintaan ini:
Dalam parameter
updateMask
, tentukan maskconfig.maintenanceWindow
.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.
- Format
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.
- Format
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"
}
}
}