Cloud Composer 1 | Cloud Composer 2
Halaman ini menjelaskan cara menentukan masa pemeliharaan untuk lingkungan Anda.
Tentang masa pemeliharaan
Masa pemeliharaan adalah jangka waktu saat Anda mengizinkan Cloud Composer untuk menjalankan operasi pemeliharaan. Misalnya, Anda dapat memastikan bahwa eksekusi tugas penting tidak terganggu dengan menentukan masa pemeliharaan di luar waktu jadwal DAG.
Dengan masa pemeliharaan, Anda memiliki kontrol atas jangka waktu 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 masa pemeliharaan untuk lingkungan Anda tidak ditentukan, Cloud Composer akan melakukan pemeliharaan kapan saja.
Yang terjadi selama masa pemeliharaan
Saat menentukan masa 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 menjadi 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 bukan berarti operasi pemeliharaan memerlukan waktu 12 jam penuh atau bahkan dilakukan setiap minggu.
Anda masih dapat menjalankan DAG selama masa pemeliharaan, selama 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 konfigurasi Airflow, DAG, atau tingkat tugas.
Operasi pemeliharaan dapat memiliki efek berikut terhadap lingkungan Anda:
Untuk sementara, Anda tidak dapat mengubah beberapa parameter lingkungan atau melakukan upgrade ke versi yang lebih baru.
Mengarahkan kueri SQL ke database Airflow mungkin memerlukan waktu yang lebih lama dari biasanya dan mungkin memerlukan percobaan ulang.
UI Airflow mungkin untuk sementara tidak tersedia
Beberapa tugas Airflow dapat terganggu. Setelah operasi pemeliharaan selesai, Airflow akan menjadwalkan percobaan ulang untuk tugas-tugas ini (jika tidak dikonfigurasi jika tidak).
Masa pemeliharaan default
Secara default, lingkungan Cloud Composer 1 tidak memiliki masa pemeliharaan yang ditentukan jika Anda membuatnya dari 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 masa pemeliharaan default mulai 00:00:00 hingga 04:00:00 (GMT) pada hari Jumat, Sabtu, dan Minggu setiap minggu.
Cara menggunakan masa pemeliharaan
Operasi pemeliharaan dapat memengaruhi eksekusi tugas DAG dan Airflow Anda, jadi sebaiknya lakukan hal berikut:
Menentukan masa pemeliharaan untuk lingkungan Cloud Composer Anda.
Menjadwalkan DAG berjalan di luar masa pemeliharaan yang ditentukan menggunakan parameter
start_date
danschedule_interval
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 untuk lingkungan yang ada, perbarui lingkungan:
Di konsol Google Cloud, buka halaman Environments.
Pilih lingkungan Anda.
Buka tab Konfigurasi lingkungan.
Di samping entri Masa pemeliharaan, klik Edit.
Pada dialog Pemeliharaan jendela, centang kotak Setel waktu kustom untuk masa pemeliharaan.
Tetapkan Waktu mulai, Zona Waktu, Hari, dan Durasi, sehingga waktu gabungan untuk jadwal yang ditentukan setidaknya 12 jam dalam periode berputar 7 hari. Misalnya, periode 4 jam setiap hari Senin, Rabu, dan Jumat memberikan jumlah waktu yang diperlukan.
Klik Save dan tunggu hingga lingkungan Anda diupdate.
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 dalam sehari yang digunakan, tanggal yang ditentukan akan diabaikan.DATETIME_END
dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan akan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.MAINTENANCE_RECURRENCE
dengan RFC 5545 RRules 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 yang dipilih dalam seminggu.
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 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
environments.patch
API.Dalam permintaan ini:
Dalam parameter
updateMask
, tentukan maskconfig.maintenanceWindow
.Dalam isi permintaan, tentukan parameter untuk masa 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 akan diabaikan.DATETIME_END
dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan akan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.MAINTENANCE_RECURRENCE
dengan RFC 5545 RRules 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 yang dipilih dalam seminggu.
- 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 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 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 akan diabaikan.DATETIME_END
dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan akan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.MAINTENANCE_RECURRENCE
dengan RFC 5545 RRules 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 yang dipilih dalam seminggu.
- 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 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"
}
}
}