Menentukan masa pemeliharaan

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:

  1. Menentukan masa pemeliharaan untuk lingkungan Cloud Composer Anda.

  2. Menjadwalkan DAG berjalan di luar masa pemeliharaan yang ditentukan menggunakan parameter start_date dan schedule_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:

  1. Di konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Pilih lingkungan Anda.

  3. Buka tab Konfigurasi lingkungan.

  4. Di samping entri Masa pemeliharaan, klik Edit.

  5. Pada dialog Pemeliharaan jendela, centang kotak Setel waktu kustom untuk masa pemeliharaan.

  6. 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.

  7. 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

  1. Buat permintaan environments.patch API.

  2. Dalam permintaan ini:

    1. Dalam parameter updateMask, tentukan mask config.maintenanceWindow.

    2. 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.

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.

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"
    }
  }
}

Langkah selanjutnya