Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Auf dieser Seite wird beschrieben, wie Sie den Status Ihrer Umgebung mithilfe von Umgebungs-Snapshots speichern und laden.
Sie können Ihre Umgebung so konfigurieren, dass Snapshots automatisch gespeichert werden. Weitere Informationen finden Sie unter Geplante Snapshots konfigurieren.
Umgebungs-Snapshots
In Umgebungs-Snapshots wird der Status Ihrer Umgebung gespeichert. Sie können Umgebungs-Snapshots nach Bedarf speichern und laden.
Mit Snapshots können Sie Folgendes tun:
- Migrieren Sie Ihre Umgebungen zu einer neueren Hauptversion von Cloud Composer oder Airflow.
So werden Snapshots gespeichert
Ein Umgebungs-Snapshot ist eine Gruppe von Dateien, die den Status Ihrer Umgebung beschreiben und die Sicherung der Umgebungsdaten speichern.
Sie können mehrere Snapshots Ihrer Umgebung erstellen. Umgebungs-Snapshots sind nicht inkrementell. Sie können jeden Snapshot unabhängig von anderen Snapshots verwenden.
In Cloud Composer werden Snapshots nicht gelöscht, wenn Sie Ihre Umgebung löschen.
Standardmäßig speichert Cloud Composer Snapshots im Ordner snapshots/
im Bucket Ihrer Umgebung. Sie können beim Erstellen eines Snapshots auch einen benutzerdefinierten Speicherort angeben.
In der Cloud Storage-Benutzeroberfläche werden Daten aus praktischen Gründen als Ordner angezeigt. Buckets funktionieren jedoch mit einer Flatfile-Struktur. Das ändert nichts daran, wie Sie Snapshots in der Google Cloud Console speichern und laden. Berücksichtigen Sie dies jedoch, wenn Sie Vorgänge direkt auf die Dateien in Ihrem Bucket ausführen. Weitere Informationen finden Sie unter Objekt-Namespace.
Sicherheitsaspekte für Snapshots
Um dieses Sicherheitsrisiko zu minimieren, können Sie vertrauliche Informationen, die von Airflow-DAGs verwendet werden, z. B. Schlüssel oder Passwörter, in Secret Manager speichern. Weitere Informationen finden Sie unter Secret Manager für Ihre Umgebung konfigurieren.
Prüfen Sie die Sicherheitsberechtigungen für den Bucket Ihrer Umgebung. Wenn Sie Umgebungs-Snapshots in einem benutzerdefinierten Bucket speichern, müssen die Zugriffsberechtigungen dafür in Ihrem Projekt richtig konfiguriert sein. Achten Sie beim Zuweisen von Berechtigungen darauf, dass das Dienstkonto der Umgebung ausreichende Berechtigungen zum Speichern und Laden von Snapshots aus dem Bucket hat.
Welche Daten in Snapshots gespeichert werden
Cloud Composer speichert die folgenden Daten in Snapshots:
- Airflow-Konfigurationsüberschreibungen
- Umgebungsvariablen
- Liste der benutzerdefinierten PyPI-Pakete als Anforderungen.
- Eine Sicherung der Airflow-Datenbank, einschließlich Status der ausgeführten Aufgaben und Verlauf der DAG-Ausführungen.
- Eine Sicherung der Ordner
/dags
,/data
und/plugins
aus dem Bucket der Umgebung. - Fernet-Schlüssel der Umgebung
- Weitere Informationen zur Konfiguration der Umgebung, z. B. die Skalierungs- und Leistungsparameter der Umgebung. Cloud Composer verwendet diese Informationen nicht, wenn Snapshots geladen werden.
Welche Daten werden aus Snapshots geladen?
Cloud Composer lädt die folgenden Daten aus Snapshots:
- Airflow-Konfigurationsüberschreibungen
- Umgebungsvariablen
Benutzerdefinierte PyPI-Pakete (sofern Sie die Installation nicht überspringen)
Die Inhalte der Airflow-Datenbank, einschließlich der Status ausgeführter Aufgaben und der DAG-Ausführungshistorie.
Der Inhalt der Ordner
/dags
,/data
und/plugins
aus dem Snapshot wird in den Bucket der Umgebung geladen.Mit dem Fernet-Schlüssel aus dem Snapshot werden die Daten aus dem Snapshot mit dem eigenen Fernet-Schlüssel der Umgebung neu verschlüsselt. Der Fernet-Schlüssel der Umgebung bleibt unverändert.
Cloud Composer speichert zwar einige Informationen zur Konfiguration der Umgebung in Snapshots, diese werden jedoch nicht beim Laden von Snapshots verwendet. Die folgenden Parameter Ihrer Umgebung ändern sich nicht, wenn Sie einen Snapshot laden:
- Umgebungskonfiguration, z. B. Skalierungs- und Leistungsparameter der Umgebung
- Netzwerkkonfiguration der Umgebung.
- Inhalt des Buckets der Umgebung außerhalb der Ordner
/dags
,/data
und/plugins
. - Umgebungslabels
Alle Einstellungen, die Sie in der Cloud Composer-Infrastruktur ohne Verwendung der Cloud Composer API angewendet haben, gehen beim Laden eines Snapshots möglicherweise verloren.
Teilweise abgeschlossene Vorgänge
Wenn Sie einen Snapshot laden, kann der Vorgang erfolgreich, fehlgeschlagen oder teilweise abgeschlossen sein:
- Bei erfolgreichen Vorgängen werden alle Daten aus dem Snapshot geladen.
- Fehlgeschlagene Vorgänge führen zu keinen Änderungen.
- Bei teilweise abgeschlossenen Vorgängen wird nur ein Teil der Daten aus dem Snapshot geladen. Solche Vorgänge werden als fehlgeschlagen gemeldet, aber in der Fehlermeldung wird angegeben, welche Daten erfolgreich geladen wurden. Wenn beispielsweise PyPI-Pakete installiert sind, die Überschreibungen der Airflow-Konfigurationsoptionen jedoch fehlgeschlagen sind, wird dies in der Fehlermeldung angezeigt.
Bei einem teilweise abgeschlossenen Vorgang können Sie versuchen, denselben Snapshot noch einmal zu laden. Cloud Composer überspringt Schritte, die beim vorherigen Versuch erfolgreich waren. Wenn ein Vorgang beispielsweise aufgrund einer Zeitüberschreitung fehlgeschlagen ist, die Datenbank aber erfolgreich geladen wurde, wird sie beim nächsten Versuch nicht noch einmal geladen.
Hinweise
- In Cloud Composer 1 können Sie Snapshots nur speichern, aber nicht laden. Sie können Snapshots aus einer Cloud Composer 1-Umgebung in Cloud Composer 2-Umgebungen laden.
Snapshots werden in Cloud Composer 2 Version 2.0.9 und höher unterstützt. Cloud Composer 1 unterstützt das Speichern von Umgebungs-Snapshots ab Version 1.18.5.
Mit Snapshots wird keine Umgebung erstellt. Wenn Sie einen Snapshot aus einer Umgebung in eine andere laden möchten, müssen Sie zuerst eine neue Umgebung erstellen und dann den Snapshot dorthin laden.
Sie können keine Snapshots in Umgebungen laden, die sich im Fehlerstatus befinden. Solche Umgebungen können nicht durch Laden eines Snapshots korrigiert werden. Sie können jedoch weiterhin einen vorhandenen Snapshot in eine neue Umgebung laden.
Die maximale Größe der Airflow-Datenbank, die Snapshots unterstützt, beträgt 20 GB. Wenn die Datenbank Ihrer Umgebung mehr als 20 GB belegt, verringern Sie die Größe der Airflow-Datenbank, bevor Sie einen Snapshot speichern.
Die Gesamtzahl der Objekte in den Ordnern
/dags
,/plugins
und/data
im Bucket der Umgebung muss unter 100.000 liegen,damit Snapshots erstellt werden können.Wenn Sie den XCom-Mechanismus zum Übertragen von Dateien verwenden, müssen Sie [ihn gemäß den Richtlinien von Airflow verwenden][ext-airflow-xcom-backend]. Die Übertragung großer Dateien oder einer großen Anzahl von Dateien über XCom wirkt sich auf die Leistung der Airflow-Datenbank aus und kann zu Fehlern beim Laden von Snapshots oder beim Upgraden Ihrer Umgebung führen. Für die Übertragung großer Datenmengen können Sie Alternativen wie Cloud Storage verwenden.
Der Name eines Objekts im Bucket der Umgebung darf maximal 1.024 Zeichen lang sein. Andernfalls können keine Snapshots erstellt werden.
Wenn Sie Snapshots an einem Speicherort außerhalb des Buckets Ihrer Umgebung speichern, muss das Dienstkonto Ihrer Umgebung Lese- und Schreibberechtigungen für den angegebenen Speicherort haben. Die Rolle Storage Object Admin hat beispielsweise solche Berechtigungen. Sie können sie auf ein Projekt oder einen bestimmten Bucket anwenden.
Das Erstellen und Speichern von Snapshots verursacht zusätzliche Kosten im Zusammenhang mit Cloud Storage. Weitere Informationen finden Sie unter Preise.
Umgebungs-Snapshot speichern
Cloud Composer speichert Umgebungs-Snapshots in einem Unterordner, der sich relativ zum von Ihnen angegebenen Ordner befindet.
Der Ordnername enthält die Projekt-ID, den Speicherort der Umgebung, den Namen der Umgebung und den Zeitstempel, zu dem der Snapshot gespeichert wurde. Beispiel: /snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
.
Console
So erstellen Sie einen Snapshot Ihrer Umgebung:
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.
Klicken Sie auf Snapshot speichern.
Wählen Sie im Dialogfeld Snapshot speichern aus, wo der Snapshot gespeichert werden soll:
Wenn Sie den Snapshot im Ordner
/snapshots
im Bucket der Umgebung speichern möchten, wählen Sie Snapshot-Ordner im Umgebungs-Bucket verwenden (Standard) aus.Wenn Sie den Snapshot im benutzerdefinierten Ordner speichern möchten, wählen Sie Benutzerdefinierten Ordner in einem anderen Bucket verwenden aus und geben Sie einen Speicherort an.
Klicken Sie auf Speichern.
gcloud
Mit dem Befehl gcloud composer environments snapshots save
wird ein Snapshot Ihrer Umgebung gespeichert.
- Mit dem Argument
snapshot-location
wird ein Ordner angegeben, in dem der Snapshot gespeichert wird. Standardmäßig werden Snapshots im Ordner/snapshots
im Bucket Ihrer Umgebung gespeichert. Beispiel:gs://us-central1-example-916807e1-bucket/snapshots
. Sie können auch einen anderen Ordner angeben.
Führen Sie folgenden Befehl aus, um einen Snapshot Ihrer Umgebung zu speichern:
gcloud composer environments snapshots save \
ENVIRONMENT_NAME \
--location LOCATION \
--snapshot-location "SNAPSHOTS_FOLDER"
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.- Optional:
SNAPSHOTS_FOLDER
mit dem URI eines Bucket-Ordners, in dem der Snapshot gespeichert werden soll. Wenn Sie dieses Argument weglassen, speichert Cloud Composer den Snapshot im Ordner/snapshots
im Bucket Ihrer Umgebung.
Im folgenden Beispiel wird der Standardspeicherort verwendet:
gcloud composer environments snapshots save \
example-environment \
--location us-central1
Im folgenden Beispiel wird in einem benutzerdefinierten Ordner gespeichert:
gcloud composer environments snapshots save \
example-environment \
--location us-central1 \
--snapshot-location "gs://example-bucket/environment_snapshots"
API
Erstellen Sie eine API-Anfrage
environments.saveSnapshot
.Geben Sie im Anfragetext im Feld
snapshotLocation
den Ordner an, in dem der Snapshot gespeichert werden soll.
{
"snapshotLocation": "SNAPSHOTS_FOLDER"
}
Ersetzen Sie:
SNAPSHOTS_FOLDER
durch den URI eines Bucket-Ordners, in dem der Snapshot gespeichert werden soll.
Beispiel:
// POST https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment:saveSnapshot
{
"snapshotLocation": "gs://us-central1-example-916807e1-bucket/snapshots"
}
Terraform
Es ist nicht möglich, Umgebungs-Snapshots in Terraform zu speichern und zu laden.
Das Speichern und Laden von Snapshots sind Aktionen, die in einer Umgebung ausgeführt werden. Die resultierenden Snapshots sind nicht Teil der Definition einer Umgebung. Da Terraform nur die Konfiguration der Cloud Composer-Umgebung verwaltet, können Sie keine Umgebungs-Snapshots damit speichern oder daraus laden.
Umgebungs-Snapshot laden
In Cloud Composer 1 können Sie Snapshots nur speichern, aber nicht laden. Sie können Snapshots aus einer Cloud Composer 1-Umgebung in Cloud Composer 2-Umgebungen laden. Beispielsweise, wenn Sie Ihre Umgebungen zu Cloud Composer 2 migrieren.