Geplante Snapshots konfigurieren

Cloud Composer 1 Cloud Composer 2

Auf dieser Seite wird erläutert, wie Sie Ihre Umgebung so konfigurieren, dass Snapshots nach einem Zeitplan gespeichert werden.

Weitere Informationen zur Funktionsweise von Umgebungs-Snapshots und zum manuellen Speichern von Snapshots finden Sie unter Snapshots speichern und laden.

Funktionsweise von geplanten Snapshots

Wenn Sie geplante Snapshots aktivieren, speichert Cloud Composer regelmäßig Snapshots Ihrer Umgebung in einem Cloud Storage-Bucket.

Wenn Sie Snapshots manuell erstellen, speichert Cloud Composer die Snapshots standardmäßig im Bucket der Umgebung. Bei geplanten Snapshots empfehlen wir, Snapshots in einem separaten Bucket zu speichern. Auf diese Weise können Sie Berechtigungen und eine Lebenszykluskonfiguration für diesen Bucket einrichten. Ein Bucket kann Snapshots von mehreren Umgebungen enthalten. Sie können aber auch Buckets erstellen, die regionenübergreifend redundant sind.

Hinweise

  • Cloud Composer unterstützt geplante Snapshots in Versionen ab 2.0.32. Umgebungs-Snapshots werden ab Version 2.0.9 unterstützt.

  • Weitere Informationen zu Anforderungen und Einschränkungen für Snapshots finden Sie unter Snapshots speichern und laden.

Bucket für geplante Snapshots erstellen

Erstellen Sie einen Bucket für geplante Snapshots. Überlegen Sie, wie Sie Umgebungs-Snapshots verwenden möchten. Wenn dies Teil Ihres Notfallwiederherstellungsplans ist, verwenden Sie einen Bucket, der über Regionen hinweg redundant ist, oder einen Bucket in einer anderen Region, damit Sie auch bei einem vollständigen regionalen Ausfall Zugriff auf die Daten haben. Andernfalls ist ein Bucket in derselben Region wie die Umgebung möglicherweise besser geeignet. Dadurch senken 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 verfügt beispielsweise über 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 über die Google Cloud Console aufrufen. In diesem Fall muss ein Nutzerkonto die Leseberechtigung für den Bucket haben.

Lebenszykluskonfiguration für den Bucket festlegen

Sie können eine Regel konfigurieren, die Umgebungs-Snapshots nach einem bestimmten Zeitraum löscht, um Speicherkosten zu sparen.

So löschen Sie beispielsweise automatisch Snapshots, die älter als 30 Tage sind:

  1. Legen Sie eine Lebenszykluskonfiguration für den Bucket fest.
  2. Geben Sie die Aktion Objekt löschen an.
  3. Wählen Sie als Bedingung Alter und 30 Tage aus.

Snapshot-Zeitplan für Ihre Umgebung aktivieren

Console

  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. Rufen Sie den Tab Umgebungskonfiguration auf.

  4. Klicken Sie unter Wiederherstellungskonfiguration > Snapshot-Zeitplan auf Bearbeiten. Der Bereich Snapshot-Zeitplan wird geöffnet.

  5. Wählen Sie im Bereich Snapshot-Zeitplan die Option Snapshots nach dem angegebenen Zeitplan regelmäßig erstellen aus.

  6. Wählen Sie in der Drop-down-Liste Zeitplanhäufigkeit für Momentaufnahmen einen täglichen, wöchentlichen oder benutzerdefinierten Zeitraum aus.

    Sie können einen benutzerdefinierten Zeitplan mit dem Format „unix-cron“ angeben. Wenn Sie beispielsweise Snapshots alle 30 Minuten speichern möchten, geben Sie */30 * * * * an.

  7. Wählen Sie im Feld Snapshot-Speicherort den Bucket-Ordner aus, in dem Sie Snapshots speichern möchten.

gcloud

Aktualisieren Sie die Umgebungskonfiguration. Mit den folgenden Argumenten werden Parameter für geplante Snapshots definiert:

  • --enable-scheduled-snapshot-creation aktiviert geplante Snapshots.
  • --snapshot-location gibt einen Bucket-Ordner an, in dem Sie Snapshots speichern möchten.
  • --snapshot-creation-schedule gibt im Unix-Cron-Format an, wie oft Umgebungs-Snapshots erstellt werden müssen. Wenn Sie beispielsweise alle 30 Minuten einen Snapshot erstellen möchten, geben Sie */30 * * * * an.

  • --snapshot-schedule-timezone definiert eine Zeitzone für den Zeitplan. Dieser Wert ist eine Zeitverschiebung und berücksichtigt nicht die Umstellung auf Sommerzeit. Gültige Werte reichen von UTC-12 bis UTC+12. Beispiele: UTC, UTC-01, UTC+03.

gcloud beta 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_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • SNAPSHOTS_FOLDER durch den URI eines Bucket-Ordners, in dem der Snapshot gespeichert werden soll.
  • CRON_EXPRESSION durch den Zeitplan im unix-cron-Format.
  • TIME_ZONE durch die Zeitzone für den Zeitplan.

Beispiel (täglich um 4:00, UTC+01):

gcloud beta 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 API-Anfrage environments.patch.

In dieser Anfrage:

  1. Geben Sie im Parameter updateMask die Maske config.recoveryConfig.scheduledSnapshotsConfig an, um die vorhandene Konfiguration von geplanten Snapshots zu ersetzen.

  2. 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_FOLDER durch den URI eines Bucket-Ordners, in dem der Snapshot gespeichert werden soll.
    • CRON_EXPRESSION durch den Zeitplan im unix-cron-Format.

    • TIME_ZONE durch die Zeitzone für den Zeitplan. Bei diesem Wert handelt es sich um eine Zeitverschiebung, die keine Sommerzeitänderungen berücksichtigt. Gültige Werte reichen von UTC-12 bis UTC+12. Beispiele: UTC, UTC-01, UTC+03.

    Beispiel (täglich um 4:00, UTC+01):

      // PATCH https://composer.googleapis.com/v1beta1/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

Der scheduled_snapshots_config im Block recovery_config definiert Parameter für geplante Snapshots:

  • enabled aktiviert geplante Snapshots.
  • snapshot_location gibt einen Bucket-Ordner an, in dem Sie Snapshots speichern möchten.
  • snapshot_creation_schedule gibt im Unix-Cron-Format an, wie oft Umgebungs-Snapshots erstellt werden müssen. 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_FOLDER durch den URI eines Bucket-Ordners, in dem der Snapshot gespeichert werden soll.
  • CRON_EXPRESSION durch den Zeitplan im unix-cron-Format.

  • TIME_ZONE durch die Zeitzone für den Zeitplan. Bei diesem Wert handelt es sich um eine Zeitverschiebung, die keine Sommerzeitänderungen berücksichtigt. Gültige Werte reichen von UTC-12 bis UTC+12. Beispiele: UTC, UTC-01, UTC+03.

Beispiel (täglich um 4:00, 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 bereits erstellte Snapshots weder geändert noch entfernt. Diese Snapshots verbleiben an dem Ort, an dem sie gespeichert wurden.

Console

  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. Rufen Sie den Tab Umgebungskonfiguration auf.

  4. Klicken Sie unter Wiederherstellungskonfiguration > Snapshot-Zeitplan auf Bearbeiten. Der Bereich Snapshot-Zeitplan wird geöffnet.

  5. Wählen Sie im Bereich Snapshot-Zeitplan die Option Snapshots nicht automatisch erstellen aus.

gcloud

Aktualisieren Sie die Umgebungskonfiguration. Mit dem Argument --disable-scheduled-snapshot-creation werden geplante Snapshots deaktiviert.

gcloud beta composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-scheduled-snapshot-creation

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.

Beispiel:

gcloud beta composer environments update example-environment \
    --location us-central1 \
    --disable-scheduled-snapshot-creation

API

Erstellen Sie eine API-Anfrage environments.patch.

In dieser Anfrage:

  1. Geben Sie im Parameter updateMask die Maske config.recoveryConfig.scheduledSnapshotsConfig.enabled an, die den Wert des Felds enabled ersetzen soll.

  2. Geben Sie im Anfragetext den neuen Wert an:

    {
      "config": {
        "recoveryConfig": {
          "scheduledSnapshotsConfig": {
            "enabled": false
          }
        }
      }
    }
    

Beispiel:

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.recoveryConfig.scheduledSnapshotsConfig.enabled
{
"config": {
  "recoveryConfig": {
    "scheduledSnapshotsConfig": {
      "enabled": false
    }
  }
}
}

Terraform

Zum Deaktivieren geplanter Snapshots setzen Sie das Feld enabled im Block scheduled_snapshots_config auf false:

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
    }
  }
}

Nächste Schritte