Cloud Composer 1 Cloud Composer 2
Auf dieser Seite wird beschrieben, wie Sie Wartungsfenster für Ihre Umgebungen definieren.
Wartungsfenster
Ein Wartungsfenster ist ein Zeitraum, in dem Cloud Composer Wartungsarbeiten ausführen kann. Sie können beispielsweise dafür sorgen, dass die kritischen Aufgabenausführungen nicht unterbrochen werden, indem Sie Wartungsfenster außerhalb der DAG-Zeitplanzeiten festlegen.
Mit Wartungsfenstern können Sie steuern, in welchen Zeiträumen für Ihre Umgebung Wartungsarbeiten durchgeführt werden können:
Wenn Sie benutzerdefinierte Wartungsfenster für Ihre Umgebung definieren, führt Cloud Composer während dieser definierten Zeiträume Wartungsarbeiten durch.
Wenn Sie keine Wartungsfenster für Ihre Umgebung definieren, führt Cloud Composer die Wartung jederzeit aus.
Was passiert während Wartungsfenstern?
Wenn Sie Wartungsfenster festlegen, geben Sie mindestens 12 Stunden in einer einzelnen Woche für Wartungsvorgänge an:
- Ihre Umgebung bleibt während der Wartungsfenster verfügbar. Einige Komponenten Ihrer Umgebung sind während der Wartung vorübergehend nicht verfügbar.
- Die 12 Stunden sind erforderlich, damit Cloud Composer genügend Zeit hat, alle Wartungsvorgänge zu planen und auszuführen. Das bedeutet nicht, dass die Wartung zwölf Stunden oder sogar jede Woche dauert.
Sie können Ihre DAGs immer während eines Wartungsfensters ausführen, solange es akzeptabel ist, dass einige Aufgaben unterbrochen und wiederholt werden können. Wenn Sie DAGs während der Wartungsfenster ausführen, sollten Sie die Wiederholung von Aufgaben aktivieren. Sie können Aufgabenwiederholungen auf der Airflow-Konfiguration, auf DAG oder auf Aufgabenebene konfigurieren.
Wartungsvorgänge können folgende Auswirkungen auf Ihre Umgebung haben:
Das Ändern einiger Parameter Ihrer Umgebung oder das Upgrade auf eine neuere Version ist möglicherweise vorübergehend nicht möglich.
Direkte SQL-Abfragen an die Airflow-Datenbank können länger als gewöhnlich dauern und erfordern unter Umständen einen weiteren Versuch.
Die Airflow-UI ist möglicherweise vorübergehend nicht verfügbar
Einige Airflow-Aufgaben können unterbrochen werden. Nach Abschluss der Wartung plant Airflow Wiederholungsversuche für diese Aufgaben (sofern nicht anders konfiguriert).
Standardwartungsfenster
Standardmäßig haben Cloud Composer 1-Umgebungen keine definierten Wartungsfenster, wenn Sie sie über die Google Cloud Console, die API oder Terraform erstellen. Wir empfehlen, Wartungsfenster für die neue und vorhandene Umgebung festzulegen.
Wenn Sie Ihre Umgebung mit gcloud-Befehlszeile erstellen, werden Ihre Wartungsfenster für Sonntag, Freitag und Samstag von 00:00:00 bis 04:00:00 (GMT) jede Woche festgelegt.
Wartungsfenster einsetzen
Wartungsvorgänge können sich auf die Ausführung Ihrer DAGs und Airflow-Aufgaben auswirken. Wir empfehlen Ihnen daher Folgendes:
Definieren Sie Wartungsfenster für Ihre Cloud Composer-Umgebungen.
Planen Sie DAG-Ausführungen für außerhalb der angegebenen Wartungsfenster indem Sie die Parametern
start_date
undschedule_interval
in Ihren DAGs verwenden.
Wartungsfenster für neue Umgebungen festlegen
Sie können Wartungsfenster beim Erstellen einer Umgebung festlegen. Weitere Informationen finden Sie unter Umgebungen erstellen.
Wartungsfenster für vorhandene Umgebungen angeben
Console
Wenn Sie Wartungsfenster für eine vorhandene Umgebung definieren oder ändern möchten, aktualisieren Sie die Umgebung:
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Wählen Sie Ihre Umgebung aus.
Rufen Sie den Tab Umgebungskonfiguration auf.
Klicken Sie neben dem Eintrag Wartungsfenster auf Bearbeiten.
Klicken Sie im Kästchen Wartungsfenster das Kästchen Benutzerdefinierte Zeit für Wartungsfenster festlegen an.
Legen Sie Startzeit, Zeitzone, Tage und Länge fest, sodass die kombinierte Zeit für den angegebenen Zeitplan beträgt mindestens 12 Stunden in einem 7-tägigen rollierenden Zeitfenster. Zum Beispiel bietet ein Zeitraum von vier Stunden jeden Montag, Mittwoch und Freitag die erforderliche Zeitmenge.
Klicken Sie auf Speichern und warten Sie, bis die Umgebung aktualisiert wurde.
gcloud
Beim Aktualisieren einer Umgebung definieren die folgenden Argumente Wartungsfensterparameter:
--maintenance-window-start
legt den Beginn eines Wartungsfensters fest.--maintenance-window-end
legt das Ende eines Wartungsfensters fest.- Mit
--maintenance-window-recurrence
wird die Wiederholung des Wartungsfensters festgelegt.
gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.DATETIME_START
durch das Startdatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert.DATETIME_END
durch das Enddatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert. Das angegebene Datum und die angegebene Uhrzeit müssen nach dem Startdatum liegen.MAINTENANCE_RECURRENCE
mit einer RFC 5545 RRULE für Wiederholungsversuche von Wartungsfenstern. Cloud Composer unterstützt zwei Formate:Das Format
FREQ=DAILY
gibt eine tägliche Wiederholung an.Das Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
gibt eine Wiederholung an ausgewählten Wochentagen an.
Im folgenden Beispiel wird ein Wartungsfenster von 6 Stunden zwischen 01:00 und 07:00 Uhr (UTC) an Sonntagen, Mittwochen und Samstags angegeben. Das Datum 1. Januar 2021 wird ignoriert.
gcloud beta composer environments update example-environment \
--location us-central1 \
--maintenance-window-start '2021-01-01T01:00:00Z' \
--maintenance-window-end '2021-01-01T07:00:00Z' \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'
API
Erstellen Sie eine API-Anfrage
environments.patch
.In dieser Anfrage:
Geben Sie im
updateMask
-Parameter dieconfig.maintenanceWindow
-Maske an.Geben Sie im Anfragetext die Parameter für Wartungsfenster an.
{
"config": {
"maintenanceWindow": {
"startTime": "DATETIME_START",
"endTime": "DATETIME_END",
"recurrence": "MAINTENANCE_RECURRENCE"
}
}
}
Ersetzen Sie:
DATETIME_START
durch das Startdatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert.DATETIME_END
durch das Enddatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert. Das angegebene Datum und die angegebene Uhrzeit müssen nach dem Startdatum liegen.MAINTENANCE_RECURRENCE
mit einer RFC 5545 RRULE für Wiederholungsversuche von Wartungsfenstern. Cloud Composer unterstützt zwei Formate:- Das Format
FREQ=DAILY
gibt eine tägliche Wiederholung an. - Das Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
gibt eine Wiederholung an ausgewählten Wochentagen an.
- Das Format
Im folgenden Beispiel wird ein Wartungsfenster von 6 Stunden zwischen 01:00 und 07:00 Uhr (UTC) an Sonntagen, Mittwochen und Samstags angegeben. Das Datum 1. Januar 2021 wird ignoriert.
// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.maintenanceWindow
{
"config": {
"maintenanceWindow": {
"startTime": "2021-01-01T01:00:00Z",
"endTime": "2021-01-01T07:00:00Z",
"recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
}
}
}
Terraform
Der Block maintenance_window
gibt die Wartungsfenster für Ihre Umgebung an:
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"
}
}
}
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.DATETIME_START
durch das Startdatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert.DATETIME_END
durch das Enddatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert. Das angegebene Datum und die angegebene Uhrzeit müssen nach dem Startdatum liegen.MAINTENANCE_RECURRENCE
mit einer RFC 5545 RRULE für Wiederholungsversuche von Wartungsfenstern. Cloud Composer unterstützt zwei Formate:- Das Format
FREQ=DAILY
gibt eine tägliche Wiederholung an. - Das Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
gibt eine Wiederholung an ausgewählten Wochentagen an.
- Das Format
Im folgenden Beispiel wird ein Wartungsfenster von 6 Stunden zwischen 01:00 und 07:00 Uhr (UTC) an Sonntagen, Mittwochen und Samstags angegeben. Das Datum 1. Januar 2021 wird ignoriert.
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
maintenance_window {
start_time = "2021-01-01T01:00:00Z"
end_time = "2021-01-01T07:00:00Z"
recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
}
}
}