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 und Umgebungs-Snapshots.

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 nach Bedarf speichern und laden.

Mit Snapshots können Sie Folgendes tun:

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.

Cloud Composer löscht keine Snapshots, wenn Sie Ihr zu verbessern.

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 in einer Flatfile-Struktur. Dies ändert nichts daran, wie Sie in der Google Cloud Console laden. Denken Sie aber daran, Vorgänge direkt für die Dateien im Bucket ausführen Weitere Informationen Siehe 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 unbedingt die Sicherheitsberechtigungen für den Bucket Ihrer Umgebung. Wenn Sie dass Sie Umgebungs-Snapshots in einem benutzerdefinierten Bucket speichern, Zugriffsberechtigungen entsprechend konfiguriert. Projekt arbeiten. 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 werden in Snapshots gespeichert?

Cloud Composer speichert die folgenden Daten in Snapshots:

  • Airflow-Konfigurationsüberschreibungen
  • Umgebungsvariablen.
  • Liste benutzerdefinierter 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.
  • Den Fernet-Schlüssel der Umgebung.
  • Weitere Informationen zur Umgebungskonfiguration, z. B. Skalierungs- und Leistungsparameter der Umgebung. Cloud Composer verwendet diese Informationen beim Laden nicht Snapshots.

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)

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

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

  • Der Fernet-Schlüssel aus dem Snapshot wird verwendet, um die Daten aus dem einen Snapshot mit dem eigenen Fennet-Schlüssel der Umgebung. Der Fenett-Schlüssel des 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
  • 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 angewendet haben ohne die Cloud Composer API zu verwenden, kann beim Laden eines Snapshot.

Teilweise abgeschlossene Vorgänge

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

  • 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 eine Teilmenge 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 z. B. PyPI-Pakete installiert sind, aber die Überschreibungen der Airflow-Konfigurationsoptionen waren nicht erfolgreich, wird der Fehler gibt dies an.

Bei einem teilweise abgeschlossenen Vorgang können Sie versuchen, denselben Snapshot noch einmal zu laden. Cloud Composer überspringt Schritte, die im vorherigen Versuch. 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 laden Umgebungen.
  • 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 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. Es ist Solche Umgebungen können nicht durch das Laden eines Snapshots korrigiert werden. Sie können immer noch einen vorhandenen Snapshot in eine neue Umgebung laden.

  • Snapshots können nur in die gleiche oder eine höhere Version von Cloud Composer oder Airflow. Sie können beispielsweise keine Snapshot von Cloud Composer 2.0.2 in eine Umgebung mit Cloud Composer 2.0.1. Ein weiteres Beispiel: Sie können einen Snapshot nicht von Airflow 2.2.3 in Airflow 2.1.4 laden.

  • Snapshots haben keinen Einfluss auf die Cloud Composer-Version. Wenn führen Sie ein Upgrade Ihrer Umgebung auf eine neuere Version des Cloud Composer und laden Sie dann einen Snapshot von einer früheren Version. behält Ihre Umgebung weiterhin ihre aktuelle Version Cloud Composer Wenn Sie z. B. einen Snapshot aus einer Cloud Composer 2.0.1 zu Cloud Composer 2.0.2 ändert sich nicht die Umgebung auf Cloud Composer 2.0.1 zurücksetzen.

  • 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 in der Bucket der Umgebung muss kleiner als 100.000 sein,um Erstellen von Snapshots

  • Wenn Sie den XCom-Mechanismus zum Übertragen von Dateien verwenden, müssen Sie [entsprechend den Airflow-Richtlinien verwenden][ext-airflow-xcom-backend]. Die Übertragung großer Dateien oder einer großen Anzahl von Dateien mit XCom wirkt sich auf Die Leistung der Airflow-Datenbank und kann zu Fehlern beim Laden führen oder ein Upgrade Ihrer Umgebung durchfü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 Bucket, muss das Dienstkonto Ihrer Umgebung Lese- und Schreibberechtigungen für den angegebenen Speicherort. Beispiel: Der Parameter Die Rolle Storage-Objekt-Administrator verfügt über solche Berechtigungen. Ich auf ein Projekt oder einen bestimmten Bucket anwenden können.

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

  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:

    • So speichern Sie den Snapshot im Ordner /snapshots der Umgebung: und wählen Sie Snapshot-Ordner im Umgebungs-Bucket verwenden (Standard).

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

  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 sich der Snapshot befindet gespeichert. Standardmäßig werden Snapshots im Ordner /snapshots in Ihrem im Bucket der Umgebung. Beispiel: gs://us-central1-example-916807e1-bucket/snapshots. Sie können auch angeben, in einem anderen Ordner.

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 gespeichert werden soll. der Momentaufnahme. 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 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 an, Ordner, in dem Sie den Snapshot speichern möchten.

{
  "snapshotLocation": "SNAPSHOTS_FOLDER"
}

Ersetzen Sie:

  • SNAPSHOTS_FOLDER durch den URI eines Bucket-Ordners, in dem um den Snapshot zu speichern.

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 ist Aktionen, die in einer Umgebung ausgeführt werden. resultierende 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.

Nächste Schritte