Umgebungs-Snapshots speichern und laden

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Auf dieser Seite wird erläutert, 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.

Informationen zu Umgebungs-Snapshots

In Umgebungs-Snapshots wird der Status Ihrer Umgebung gespeichert. Sie können Umgebungs-Snapshots bei Bedarf speichern und laden.

Snapshots können für Folgendes verwendet werden:

So werden Snapshots gespeichert

Ein Umgebungs-Snapshot besteht aus einer Reihe 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.

Cloud Composer löscht beim Löschen der Umgebung keine Snapshots.

Standardmäßig speichert Cloud Composer Snapshots im Ordner snapshots/ des Buckets Ihrer Umgebung. Sie können beim Erstellen eines Snapshots auch einen benutzerdefinierten Speicherort angeben.

Während in der Cloud Storage-UI Daten der Einfachheit halber als Ordner angezeigt werden, funktionieren Buckets in einer flachen Dateistruktur. Dies ändert nichts daran, wie Sie Snapshots in der Google Cloud Console speichern und laden. Beachten Sie dies jedoch, wenn Sie Vorgänge direkt für die Dateien in Ihrem Bucket ausführen. Weitere Informationen finden Sie unter Objekt-Namespace.

Sicherheitsaspekte für Snapshots

Zur Minderung dieses Sicherheitsrisikos 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 unbedingt die Sicherheitsberechtigungen für den Bucket Ihrer Umgebung. Wenn Sie Umgebungs-Snapshots in einem benutzerdefinierten Bucket speichern, müssen die Zugriffsberechtigungen dafür im Projekt richtig konfiguriert sein. Achten Sie beim Zuweisen von Berechtigungen darauf, dass das Dienstkonto dieser Umgebung ausreichende Berechtigungen hat, um Snapshots aus dem Bucket zu speichern und zu laden.

Welche Daten werden in Snapshots gespeichert?

Cloud Composer speichert die folgenden Daten in Snapshots:

  • Airflow-Konfigurationsüberschreibungen.
  • Umgebungsvariablen.
  • Liste benutzerdefinierter PyPI-Pakete als Anforderungen.
  • Sicherung der Airflow-Datenbank, einschließlich des Status der ausgeführten Aufgaben und des Ausführungsverlaufs des DAG.
  • Eine Sicherung der Ordner /dags, /data und /plugins aus dem Bucket der Umgebung.
  • Der Fernet-Schlüssel der Umgebung.
  • Weitere Informationen zur Umgebungskonfiguration, z. B. Skalierungs- und Leistungsparameter der Umgebung. Cloud Composer verwendet diese Informationen beim Laden von Snapshots nicht.

Welche Daten werden aus Snapshots geladen?

Cloud Composer lädt die folgenden Daten aus Snapshots:

  • Airflow-Konfigurationsüberschreibungen.
  • Umgebungsvariablen.
  • Benutzerdefinierte PyPI-Pakete (es sei denn, Sie überspringen ihre Installation).

  • Der Inhalt der Airflow-Datenbank, einschließlich des Status der ausgeführten Aufgaben und des Verlaufs der DAG-Ausführungen.

  • Die Inhalte der Ordner /dags, /data und /plugins aus dem Snapshot werden in den Bucket der Umgebung geladen.

  • Der Fernet-Schlüssel aus dem Snapshot wird verwendet, um die Daten aus dem Snapshot mit dem eigenen Fenet-Schlüssel der Umgebung neu zu verschlüsseln. Der Fenet-Schlüssel der Umgebung bleibt unverändert.

Obwohl Cloud Composer einige Informationen zur Umgebungskonfiguration in Snapshots speichert, wird er beim Laden von Snapshots nicht verwendet. Die folgenden Parameter Ihrer Umgebung ändern sich beim Laden eines Snapshots nicht:

  • Umgebungskonfiguration, z. B. Umgebungsskalierung und Leistungsparameter.
  • Die 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 die Cloud Composer API angewendet haben, können beim Laden eines Snapshots verloren gehen.

Teilweise abgeschlossene Vorgänge

Beim Laden eines Snapshots kann der Vorgang erfolgreich, fehlgeschlagen oder teilweise abgeschlossen sein:

  • Bei erfolgreichen Vorgängen werden alle Daten aus dem Snapshot geladen.
  • Fehlgeschlagene Vorgänge bringen keine Änderungen mit sich.
  • Bei teilweise abgeschlossenen Vorgängen wird eine Teilmenge der Daten aus dem Snapshot geladen. Solche Vorgänge werden als fehlgeschlagen gemeldet. In der Fehlermeldung wird jedoch angegeben, welche Daten erfolgreich geladen wurden. Wenn beispielsweise PyPI-Pakete installiert sind, das Überschreiben der Airflow-Konfigurationsoptionen jedoch nicht erfolgreich war, zeigt die Fehlermeldung dies an.

Bei einem teilweise abgeschlossenen Vorgang können Sie versuchen, denselben Snapshot noch einmal zu laden. Schritte, die beim vorherigen Versuch erfolgreich waren, werden von Cloud Composer übersprungen. Wenn beispielsweise ein Vorgang nach einer Zeitüberschreitung fehlgeschlagen ist, die Datenbank jedoch 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.

  • Snapshots erstellen keine Umgebung. Wenn Sie einen Snapshot aus einer Umgebung in eine andere Umgebung laden möchten, müssen Sie zuerst eine neue Umgebung erstellen und dann den Snapshot in diese laden.

  • Sie können keine Snapshots in Umgebungen mit dem Status „Fehler“ laden. Solche Umgebungen können nicht durch Laden eines Snapshots repariert werden. Sie können einen vorhandenen Snapshot aber trotzdem in eine neue Umgebung laden.

  • Snapshots können nur in die gleiche oder eine höhere Version von Cloud Composer oder Airflow geladen werden. Beispielsweise können Sie keinen Snapshot von Cloud Composer 2.0.2 in eine Umgebung mit Cloud Composer 2.0.1 laden. Außerdem können Sie keinen Snapshot von Airflow 2.2.3 in Airflow 2.1.4 laden.

  • Snapshots haben keine Auswirkungen auf die Cloud Composer-Version. Wenn Sie Ihre Umgebung auf eine neuere Version von Cloud Composer aktualisieren und dann einen Snapshot aus einer früheren Version laden, behält Ihre Umgebung weiterhin die aktuelle Version von Cloud Composer bei. Wenn Sie beispielsweise einen Snapshot von Cloud Composer 2.0.1 in Cloud Composer 2.0.2 laden, wird die Umgebung nicht auf Cloud Composer 2.0.1 zurückgesetzt.

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

  • 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-Objekt-Administrator 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, die mit Cloud Storage zusammenhängen. Weitere Informationen finden Sie unter Preise.

Umgebungs-Snapshot speichern

Cloud Composer speichert Umgebungs-Snapshots relativ zu dem von Ihnen angegebenen Ordner in einem Unterordner. Der Ordnername enthält die Projekt-ID, den Speicherort der Umgebung, den Namen der Umgebung und den Zeitstempel, der angibt, wann 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:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen“

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Klicken Sie auf Snapshot speichern.

  4. Wählen Sie im Dialogfeld Snapshot speichern aus, wo der Snapshot gespeichert werden soll:

    • Wählen Sie Snapshot-Ordner im Umgebungs-Bucket verwenden (Standardeinstellung) aus, um den Snapshot im Ordner /snapshots im Bucket der Umgebung zu speichern.

    • Wählen Sie Benutzerdefinierten Ordner in einem anderen Bucket verwenden aus und geben Sie einen Speicherort an, um den Snapshot im benutzerdefinierten Ordner zu speichern.

  5. Klicken Sie auf Speichern.

gcloud

Mit dem Befehl gcloud beta composer environments snapshots save wird ein Snapshot Ihrer Umgebung gespeichert.

  • Das Argument snapshot-location gibt einen Ordner an, in dem der Snapshot gespeichert wird. Standardmäßig werden Snapshots im Ordner /snapshots des Buckets Ihrer Umgebung gespeichert. Beispiel: gs://us-central1-example-916807e1-bucket/snapshots. Sie können auch einen beliebigen anderen Ordner angeben.

Führen Sie folgenden Befehl aus, um einen Snapshot Ihrer Umgebung zu speichern:

gcloud beta 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 durch den 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 beta composer environments snapshots save \
  example-environment \
  --location us-central1

Im folgenden Beispiel wird die Datei in einem benutzerdefinierten Ordner gespeichert:

gcloud beta composer environments snapshots save \
  example-environment \
  --location us-central1 \
  --snapshot-location "gs://example-bucket/environment_snapshots"

API

  1. Erstellen Sie eine API-Anfrage environments.saveSnapshot.

  2. 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/v1beta1/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 aus Terraform zu speichern und zu laden.

Das Speichern und Laden von Snapshots sind Aktionen, die für eine 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 Umgebungs-Snapshots nicht 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.

Nächste Schritte