Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Auf dieser Seite wird erläutert, wie Sie Ihre Umgebung so konfigurieren, dass Snapshots nach einem Zeitplan gespeichert werden.
Weitere Informationen zur Funktionsweise von Umgebungssnapshots und zum manuellen Speichern von Snapshots finden Sie unter Snapshots speichern und laden.
Funktionsweise geplanter Snapshots
Wenn Sie geplante Snapshots aktivieren, speichert Managed Airflow regelmäßig Snapshots der Umgebung in einem Cloud Storage-Bucket.
Wenn Sie Snapshots manuell erstellen, speichert Managed Airflow sie standardmäßig im Bucket der Umgebung. Für geplante Snapshots empfehlen wir, sie in einem separaten Bucket zu speichern. So können Sie Berechtigungen und eine Lebenszykluskonfiguration für diesen Bucket einrichten. Ein Bucket kann Snapshots aus mehreren Umgebungen enthalten. Sie können auch Buckets erstellen, die regionsübergreifend redundant sind.
Hinweis
Weitere Informationen zu den Anforderungen und Einschränkungen für Snapshots finden Sie unter Snapshots speichern und laden.
Managed Airflow unterstützt geplante Snapshots in Version 2.0.32 und höher. Umgebungssnapshots werden in Version 2.0.9 und höher unterstützt.
Bucket für geplante Snapshots erstellen
Erstellen Sie einen Bucket für geplante Snapshots. Überlegen Sie, wie Sie Umgebungssnapshots verwenden möchten. Wenn sie Teil Ihres Notfallwiederherstellungsplans sind, verwenden Sie einen Bucket, der regionsübergreifend redundant ist, oder einen Bucket in einer anderen Region. So haben Sie auch bei einem vollständigen regionalen Ausfall Zugriff auf die Daten. Andernfalls ist ein Bucket in derselben Region wie die Umgebung möglicherweise besser geeignet. In diesem Fall reduzieren Sie die Kosten für die Datenübertragung zwischen Regionen.
Berechtigungen für den Bucket konfigurieren
Konfigurieren Sie die folgenden Berechtigungen:
Das Dienstkonto Ihrer Umgebung muss Lese- und Schreibberechtigungen für diesen Bucket haben. Die Rolle Storage-Objekt-Administrator hat beispielsweise solche Berechtigungen.
Nutzerkonten benötigen keine zusätzlichen Berechtigungen für den Bucket um Snapshots daraus zu laden, es sei denn, Sie möchten den Inhalt des Buckets in der Google Cloud console ansehen. In diesem Fall muss ein Nutzerkonto Leseberechtigung für den Bucket haben.
Lebenszykluskonfiguration für den Bucket festlegen
Um Speicherkosten zu sparen, können Sie eine Regel konfigurieren, mit der Umgebungssnapshots nach einem bestimmten Zeitraum gelöscht werden.
So löschen Sie beispielsweise automatisch Snapshots, die älter als 30 Tage sind:
- Legen Sie eine Lebenszykluskonfiguration für den Bucket fest.
- Geben Sie die Aktion Objekt löschen an.
- Wählen Sie Alter und 30 Tage als Bedingung aus.
Snapshot-Zeitplan für Ihre Umgebung aktivieren
Console
Rufen Sie in der Google Cloud console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Rufen Sie den Tab Umgebungskonfiguration auf.
Klicken Sie unter Konfiguration der Wiederherstellung > Snapshot-Zeitplan auf Bearbeiten. Der Bereich Snapshot-Zeitplan wird geöffnet.
Wählen Sie im Bereich Snapshot-Zeitplan die Option Snapshots regelmäßig anhand des angegebenen Zeitplans erstellen aus.
Wählen Sie in der Drop-down-Liste Häufigkeit des Zeitplans einen täglichen, wöchentlichen oder benutzerdefinierten Zeitraum für Snapshots aus.
Sie können einen benutzerdefinierten Zeitplan im unix-cron-Format angeben. Wenn Sie beispielsweise alle 30 Minuten Snapshots speichern möchten, geben Sie
*/30 * * * *an.Wählen Sie im Feld Snapshot-Speicherort den Bucket-Ordner aus, in dem Sie Snapshots speichern möchten.
gcloud
Aktualisieren Sie die Konfiguration Ihrer Umgebung. Mit den folgenden Argumenten werden Parameter für geplante Snapshots definiert:
--enable-scheduled-snapshot-creationaktiviert geplante Snapshots.--snapshot-locationgibt einen Bucket-Ordner an, in dem Sie Snapshots speichern möchten.--snapshot-creation-schedulegibt an, wie oft Umgebungssnapshots erstellt werden müssen, im unix-cron-Format. Wenn Sie beispielsweise alle 30 Minuten einen Snapshot erstellen möchten, geben Sie*/30 * * * *an.--snapshot-schedule-timezonedefiniert eine Zeitzone für den Zeitplan. Dieser Wert ist ein zeitlicher Versatz und berücksichtigt keine Änderungen der Sommerzeit. Gültige Werte sindUTC-12bisUTC+12. Beispiele:UTC,UTC-01,UTC+03.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--enable-scheduled-snapshot-creation \
--snapshot-location "gs://SNAPSHOTS_FOLDER" \
--snapshot-creation-schedule "CRON_EXPRESSION" \
--snapshot-schedule-timezone "TIME_ZONE"
Ersetzen Sie:
ENVIRONMENT_NAMEdurch den Namen der Umgebung.LOCATIONdurch die Region, in der sich die Umgebung befindet.SNAPSHOTS_FOLDERdurch den URI eines Bucket-Ordners, in dem der Snapshot gespeichert werden soll.CRON_EXPRESSIONdurch den Zeitplan im unix-cron-Format.TIME_ZONEdurch eine Zeitzone für den Zeitplan.
Beispiel (jeden Tag um 4:00 Uhr, UTC+01):
gcloud composer environments update example-environment \
--location us-central1 \
--enable-scheduled-snapshot-creation \
--snapshot-location "gs://example-bucket/environment_snapshots" \
--snapshot-creation-schedule "0 4 * * *" \
--snapshot-schedule-timezone "UTC+01"
API
Erstellen Sie eine environments.patch-API-Anfrage.
In dieser Anfrage:
Geben Sie im Parameter
updateMaskdie Maskeconfig.recoveryConfig.scheduledSnapshotsConfigan, um die vorhandene Konfiguration für geplante Snapshots zu ersetzen.Geben Sie im Anfragetext die Konfiguration für Snapshots an:
{ "config": { "recoveryConfig": { "scheduledSnapshotsConfig": { "enabled": true, "snapshot_location": "gs://SNAPSHOTS_FOLDER", "snapshot_creation_schedule": "CRON_EXPRESSION", "time_zone": "TIME_ZONE" } } } }Ersetzen Sie:
SNAPSHOTS_FOLDERdurch den URI eines Bucket-Ordners, in dem der Snapshot gespeichert werden soll.CRON_EXPRESSIONdurch den Zeitplan im unix-cron-Format.TIME_ZONEdurch eine Zeitzone für den Zeitplan. Dieser Wert ist ein zeitlicher Versatz und berücksichtigt keine Änderungen der Sommerzeit. Gültige Werte sindUTC-12bisUTC+12. Beispiele:UTC,UTC-01,UTC+03.
Beispiel (jeden Tag um 4:00 Uhr, UTC+01):
// PATCH https://composer.googleapis.com/v1/projects/example-project/ // locations/us-central1/environments/example-environment?updateMask= // config.recoveryConfig.scheduledSnapshotsConfig { "config": { "recoveryConfig": { "scheduledSnapshotsConfig": { "enabled": true, "snapshot_location": "gs://example-bucket/environment_snapshots", "snapshot_creation_schedule": "0 4 * * *", "time_zone": "UTC+01" } } } }
Terraform
Mit scheduled_snapshots_config im Block recovery_config werden Parameter für geplante Snapshots definiert:
enabledaktiviert geplante Snapshots.snapshot_locationgibt einen Bucket-Ordner an, in dem Sie Snapshots speichern möchten.snapshot_creation_schedulegibt an, wie oft Umgebungssnapshots erstellt werden müssen, im unix-cron-Format. Wenn Sie beispielsweise alle 30 Minuten einen Snapshot erstellen möchten, geben Sie*/30 * * * *an.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
recovery_config {
scheduled_snapshots_config {
enabled = true
snapshot_location = "gs://SNAPSHOTS_FOLDER"
snapshot_creation_schedule = "CRON_EXPRESSION"
time_zone = "TIME_ZONE"
}
}
}
Ersetzen Sie:
SNAPSHOTS_FOLDERdurch den URI eines Bucket-Ordners, in dem der Snapshot gespeichert werden soll.CRON_EXPRESSIONdurch den Zeitplan im unix-cron-Format.TIME_ZONEdurch eine Zeitzone für den Zeitplan. Dieser Wert ist ein zeitlicher Versatz und berücksichtigt keine Änderungen der Sommerzeit. Gültige Werte sindUTC-12bisUTC+12. Beispiele:UTC,UTC-01,UTC+03.
Beispiel (jeden Tag um 4:00 Uhr, UTC+01):
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
recovery_config {
scheduled_snapshots_config {
enabled = true
snapshot_location = "gs://example-bucket/environment_snapshots"
snapshot_creation_schedule = "0 4 * * *"
time_zone = "UTC+01"
}
}
}
Geplante Snapshots deaktivieren
Wenn Sie geplante Snapshots deaktivieren, werden alle vorhandenen Snapshots, die bereits erstellt wurden, nicht geändert oder entfernt. Diese Snapshots bleiben an dem Speicherort, an dem sie gespeichert wurden.
Console
Rufen Sie in der Google Cloud console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Rufen Sie den Tab Umgebungskonfiguration auf.
Klicken Sie unter Konfiguration der Wiederherstellung > Snapshot-Zeitplan auf Bearbeiten. Der Bereich Snapshot-Zeitplan wird geöffnet.
Wählen Sie im Bereich Snapshot-Zeitplan die Option Snapshots nicht automatisch erstellen aus.
gcloud
Aktualisieren Sie die Konfiguration Ihrer Umgebung. Mit dem Argument --disable-scheduled-snapshot-creation werden geplante Snapshots deaktiviert.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-scheduled-snapshot-creation
Ersetzen Sie:
ENVIRONMENT_NAMEdurch den Namen der Umgebung.LOCATIONdurch die Region, in der sich die Umgebung befindet.
Beispiel:
gcloud composer environments update example-environment \
--location us-central1 \
--disable-scheduled-snapshot-creation
API
Erstellen Sie eine environments.patch-API-Anfrage.
In dieser Anfrage:
Geben Sie im
updateMaskParameter dieconfig.recoveryConfig.scheduledSnapshotsConfig.enabledMaske an, um den Wert desenabledFelds zu ersetzen.Geben Sie im Anfragetext den neuen Wert an:
{ "config": { "recoveryConfig": { "scheduledSnapshotsConfig": { "enabled": false } } } }
Beispiel:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.recoveryConfig.scheduledSnapshotsConfig.enabled
{
"config": {
"recoveryConfig": {
"scheduledSnapshotsConfig": {
"enabled": false
}
}
}
}
Terraform
Wenn Sie geplante Snapshots deaktivieren möchten, legen Sie das Feld enabled im Block scheduled_snapshots_config auf false fest:
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
recovery_config {
scheduled_snapshots_config {
enabled = false
}
}
}
Beispiel:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
recovery_config {
scheduled_snapshots_config {
enabled = false
// Other scheduled snapshots parameters
}
}
}