Geplante Snapshots konfigurieren

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Auf dieser Seite wird erläutert, wie Sie Ihre Umgebung so konfigurieren, dass Snapshots in einem ein.

Weitere Informationen zur Funktionsweise und Speicherung von Umgebungs-Snapshots Snapshots manuell erstellen, siehe Snapshots speichern und laden.

Funktionsweise von geplanten Snapshots

Wenn Sie geplante Snapshots aktivieren, Speichert Snapshots der Umgebung in einem Cloud Storage-Bucket.

Wenn Sie Snapshots manuell erstellen, speichert Cloud Composer Snapshots in standardmäßig im Bucket der Umgebung. Für geplante Snapshots empfehlen, Snapshots in einem separaten Bucket zu speichern. Auf diese Weise können Sie Berechtigungen und eine Lebenszykluskonfiguration für diesen Bucket. Ein Bucket kann enthalten sein Snapshots aus verschiedenen Umgebungen erstellen. Außerdem können Sie Buckets erstellen, sind regionenübergreifend redundant.

Hinweise

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

  • Cloud Composer unterstützt geplante Snapshots ab Version 2.0.32 versions. Umgebungs-Snapshots 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 sollten Sie Umgebungs-Snapshots verwenden. Wenn es Teil Ihres Notfallwiederherstellungsplan und verwenden Sie einen Bucket, der regionenübergreifend redundant ist, oder ein in einer anderen Region, sodass Sie auch bei einem regionalen Ausfall. Andernfalls ein Bucket in derselben Region wie die Umgebung könnte besser geeignet sein. In diesem Fall senken Sie die Kosten für die zwischen Regionen zu vergleichen.

Berechtigungen für den Bucket konfigurieren

Konfigurieren Sie die folgenden Berechtigungen:

  • Das Dienstkonto Ihrer Umgebung muss folgende Berechtigungen haben: und Schreibberechtigungen für diesen Bucket. Beispiel: Der Parameter Die Rolle Storage-Objekt-Administrator verfügt über solche Berechtigungen.

  • Nutzerkonten benötigen keine zusätzlichen Berechtigungen für den Bucket aus dem Snapshot zu laden, es sei denn, Sie möchten den Inhalt der Bucket aus der Google Cloud Console erstellen. In diesem Fall muss ein Nutzerkonto Berechtigung für den Bucket.

Lebenszykluskonfiguration für den Bucket festlegen

Um Speicherkosten zu sparen, können Sie eine Regel konfigurieren, durch die die Umgebung gelöscht wird nach einem bestimmten Zeitpunkt wieder aufgenommen werden.

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 Alter und 30 Tage als Bedingung aus.

Snapshot-Zeitplan für die 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 Konfiguration für die Wiederherstellung > Snapshot-Zeitplan auf Bearbeiten: Der Bereich Snapshot-Zeitplan wird geöffnet.

  5. Wählen Sie im Bereich Snapshot-Zeitplan die Option Snapshots regelmäßig erstellen gemäß dem festgelegten Zeitplan.

  6. Wählen Sie in der Drop-down-Liste Geplante Häufigkeit die Option „Täglich“, „Wöchentlich“ oder „Benutzerdefinierter Zeitraum“ für Snapshots aus.

    Mit der Funktion unix-cron-Format angeben. Um z. B. Snapshots zu speichern, Geben Sie */30 * * * * alle 30 Minuten an.

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

gcloud

Aktualisieren Sie Ihre Umgebungskonfiguration. Die folgenden Argumente definieren Parameter für geplante Snapshots:

  • --enable-scheduled-snapshot-creation aktiviert geplante Snapshots.
  • --snapshot-location gibt einen Bucket-Ordner an, in dem Sie Momentaufnahmen speichern möchten.
  • --snapshot-creation-schedule gibt an, wie oft müssen Umgebungs-Snapshots Das unix-cron-Format. Um beispielsweise einen Snapshot zu erstellen, Geben Sie */30 * * * * alle 30 Minuten an.

  • --snapshot-schedule-timezone definiert eine Zeitzone für den Zeitplan. Dieses -Wert ist eine Zeitverschiebung und berücksichtigt nicht die Sommerzeit Änderungen. Gültige Werte sind: 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 um den Snapshot zu speichern.
  • CRON_EXPRESSION durch den Zeitplan, im unix-cron-Format angeben.
  • TIME_ZONE durch eine Zeitzone für den Zeitplan.

Beispiel (täglich um 4:00 Uhr 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 config.recoveryConfig.scheduledSnapshotsConfig-Maske, um die vorhandene Konfiguration für geplante 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 um den Snapshot zu speichern.
    • CRON_EXPRESSION durch den Zeitplan, im unix-cron-Format angeben.

    • TIME_ZONE durch eine Zeitzone für den Zeitplan. Dieses -Wert ist eine Zeitverschiebung und berücksichtigt nicht die Sommerzeit. Zeitänderungen auftreten. Gültige Werte sind: UTC-12 bis UTC+12. Beispiele: UTC, UTC-01, UTC+03.

    Beispiel (täglich um 4:00 Uhr 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

Mit scheduled_snapshots_config im recovery_config-Block wird definiert, Parameter für geplante Snapshots:

  • enabled aktiviert geplante Snapshots.
  • snapshot_location gibt einen Bucket-Ordner an, in dem Sie speichern möchten Snapshots.
  • snapshot_creation_schedule gibt an, wie oft müssen Umgebungs-Snapshots Das unix-cron-Format. Um beispielsweise einen Snapshot zu erstellen, Geben Sie */30 * * * * alle 30 Minuten 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 um den Snapshot zu speichern.
  • CRON_EXPRESSION durch den Zeitplan, im unix-cron-Format angeben.

  • TIME_ZONE durch eine Zeitzone für den Zeitplan. Dieses -Wert ist eine Zeitverschiebung und berücksichtigt nicht die Sommerzeit. Zeitänderungen auftreten. Gültige Werte sind: UTC-12 bis UTC+12. Beispiele: UTC, UTC-01, UTC+03.

Beispiel (täglich 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 werden nicht geändert oder entfernt. Diese Snapshots bleiben an dem Ort, an dem dass 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 Konfiguration für die Wiederherstellung > Snapshot-Zeitplan auf Bearbeiten: Der Bereich Snapshot-Zeitplan wird geöffnet.

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

gcloud

Aktualisieren Sie Ihre Umgebungskonfiguration. Die --disable-scheduled-snapshot-creation-Argument deaktiviert geplante Daten Snapshots.

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 config.recoveryConfig.scheduledSnapshotsConfig.enabled-Maske, um den Wert des Felds enabled zu ersetzen.

  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

Um geplante Snapshots zu deaktivieren, legen Sie das Feld enabled in der scheduled_snapshots_config-Block an 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