Configura snapshot pianificati

Cloud Composer 1 | Cloud Composer 2

Questa pagina spiega come configurare l'ambiente per salvare gli snapshot in base a una pianificazione.

Per ulteriori informazioni sul funzionamento degli snapshot di ambiente e su come salvare gli snapshot manualmente, consulta Salvare e caricare gli snapshot.

Come funzionano gli snapshot pianificati

Quando abiliti gli snapshot pianificati, Cloud Composer salva periodicamente gli snapshot del tuo ambiente in un bucket Cloud Storage.

Se crei snapshot manualmente, per impostazione predefinita Cloud Composer salva gli snapshot nel bucket dell'ambiente. Per gli snapshot pianificati, ti consigliamo di salvarli in un bucket separato. In questo modo, puoi impostare le autorizzazioni e una configurazione del ciclo di vita. Un bucket può contenere snapshot di diversi ambienti e puoi anche creare bucket ridondanti tra regioni.

Prima di iniziare

  • Per ulteriori informazioni sui requisiti e sulle limitazioni degli snapshot, consulta Salvare e caricare gli snapshot.

  • Cloud Composer supporta gli snapshot pianificati nella versione 2.0.32 e successive. Gli snapshot di ambiente sono supportati nella versione 2.0.9 e successive.

Crea un bucket per gli snapshot pianificati

Crea un bucket per gli snapshot pianificati. Valuta come utilizzare gli snapshot di ambiente. Se fa parte del tuo piano di ripristino di emergenza, utilizza un bucket ridondante tra regioni o un bucket in un'altra regione, in modo da avere accesso ai dati anche in caso di interruzione completa di una regione. In caso contrario, un bucket nella stessa regione dell'ambiente potrebbe essere più adatto, e in questo caso si riducono i costi per il trasferimento dei dati tra regioni.

Configura le autorizzazioni per il bucket

Configura le autorizzazioni seguenti:

  • L'account di servizio del tuo ambiente deve disporre delle autorizzazioni di lettura e scrittura per questo bucket. Ad esempio, il ruolo Amministratore oggetti Storage dispone di queste autorizzazioni.

  • Gli account utente non hanno bisogno di autorizzazioni aggiuntive per consentire al bucket di caricare snapshot, a meno che tu non voglia visualizzare i contenuti del bucket dalla console Google Cloud. In questo caso, un account utente deve avere l'autorizzazione di lettura sul bucket.

Imposta una configurazione del ciclo di vita per il bucket

Per risparmiare sui costi di archiviazione, puoi configurare una regola che elimini gli snapshot di ambiente dopo un determinato periodo di tempo.

Ad esempio, per eliminare automaticamente gli snapshot più vecchi di 30 giorni:

  1. Imposta una configurazione del ciclo di vita per il bucket.
  2. Specifica l'azione Elimina oggetto.
  3. Seleziona Età e 30 giorni come condizione.

Abilita una pianificazione di snapshot per il tuo ambiente

Console

  1. Nella console Google Cloud, vai alla pagina Ambienti.

    Vai a Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Viene visualizzata la pagina Dettagli ambiente.

  3. Vai alla scheda Configurazione dell'ambiente.

  4. In Configurazione ripristino > Pianificazione snapshot, fai clic su Modifica. Si apre il riquadro Pianificazione snapshot.

  5. Nel riquadro Pianificazione snapshot, seleziona Crea snapshot periodicamente, in base alla pianificazione specificata.

  6. Nell'elenco a discesa Pianifica frequenza, seleziona il periodo giornaliero, settimanale o personalizzato per gli snapshot.

    Puoi specificare una pianificazione personalizzata con il formato Unix-cron. Ad esempio, per salvare gli snapshot ogni 30 minuti, specifica */30 * * * *.

  7. Nel campo Posizione snapshot, seleziona la cartella del bucket in cui vuoi salvare gli snapshot.

gcloud

Aggiornare la configurazione dell'ambiente. I seguenti argomenti definiscono i parametri per gli snapshot pianificati:

  • --enable-scheduled-snapshot-creation consente gli snapshot pianificati.
  • --snapshot-location specifica una cartella del bucket in cui vuoi salvare gli snapshot.
  • --snapshot-creation-schedule specifica la frequenza di creazione degli snapshot degli ambienti nel formato Unix-cron. Ad esempio, per creare uno snapshot ogni 30 minuti, specifica */30 * * * *.

  • --snapshot-schedule-timezone definisce un fuso orario per la pianificazione. Questo valore è una offset temporale'ora legale e non tiene conto del cambiamento dell'ora legale. I valori validi sono compresi tra UTC-12 e UTC+12. Esempi: 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"

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • SNAPSHOTS_FOLDER con l'URI di una cartella del bucket in cui salvare lo snapshot.
  • CRON_EXPRESSION con la pianificazione, nel formato Unix-cron.
  • TIME_ZONE con un fuso orario per la programmazione.

Esempio (ogni giorno alle 04: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

Creare una richiesta API environments.patch.

In questa richiesta:

  1. Nel parametro updateMask, specifica la maschera config.recoveryConfig.scheduledSnapshotsConfig per sostituire la configurazione degli snapshot pianificati esistente.

  2. Nel corpo della richiesta, specifica la configurazione per gli snapshot:

    {
      "config": {
        "recoveryConfig": {
          "scheduledSnapshotsConfig": {
            "enabled": true,
            "snapshot_location": "gs://SNAPSHOTS_FOLDER",
            "snapshot_creation_schedule": "CRON_EXPRESSION",
            "time_zone": "TIME_ZONE"
          }
        }
      }
    }
    

    Sostituisci:

    • SNAPSHOTS_FOLDER con l'URI di una cartella del bucket in cui salvare lo snapshot.
    • CRON_EXPRESSION con la pianificazione, nel formato Unix-cron.

    • TIME_ZONE con un fuso orario per la programmazione. Questo valore è una offset temporale e non tiene conto delle variazioni dell'ora legale. I valori validi sono compresi tra UTC-12 e UTC+12. Esempi: UTC, UTC-01, UTC+03.

    Esempio (ogni giorno alle 04: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

scheduled_snapshots_config nel blocco recovery_config definisce i parametri per gli snapshot pianificati:

  • enabled consente gli snapshot pianificati.
  • snapshot_location specifica una cartella del bucket in cui salvare gli snapshot.
  • snapshot_creation_schedule specifica la frequenza di creazione degli snapshot degli ambienti nel formato Unix-cron. Ad esempio, per creare uno snapshot ogni 30 minuti, specifica */30 * * * *.
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"
    }
  }
}

Sostituisci:

  • SNAPSHOTS_FOLDER con l'URI di una cartella del bucket in cui salvare lo snapshot.
  • CRON_EXPRESSION con la pianificazione, nel formato Unix-cron.

  • TIME_ZONE con un fuso orario per la programmazione. Questo valore è una offset temporale e non tiene conto delle variazioni dell'ora legale. I valori validi sono compresi tra UTC-12 e UTC+12. Esempi: UTC, UTC-01, UTC+03.

Esempio (ogni giorno alle 04: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"
    }
  }
}

Disabilita gli snapshot pianificati

Se disabiliti gli snapshot pianificati, tutti gli snapshot esistenti già acquisiti non vengono modificati o rimossi. Questi snapshot rimangono nella posizione in cui sono stati salvati.

Console

  1. Nella console Google Cloud, vai alla pagina Ambienti.

    Vai a Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Viene visualizzata la pagina Dettagli ambiente.

  3. Vai alla scheda Configurazione dell'ambiente.

  4. In Configurazione ripristino > Pianificazione snapshot, fai clic su Modifica. Si apre il riquadro Pianificazione snapshot.

  5. Nel riquadro Pianificazione snapshot, seleziona Non creare snapshot automaticamente.

gcloud

Aggiornare la configurazione dell'ambiente. L'argomento --disable-scheduled-snapshot-creation disabilita gli snapshot pianificati.

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

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.

Esempio:

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

API

Creare una richiesta API environments.patch.

In questa richiesta:

  1. Nel parametro updateMask, specifica la maschera config.recoveryConfig.scheduledSnapshotsConfig.enabled per sostituire il valore del campo enabled.

  2. Nel corpo della richiesta, specifica il nuovo valore:

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

Esempio:

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

Per disabilitare gli snapshot pianificati, imposta il campo enabled nel blocco scheduled_snapshots_config su false:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  recovery_config {
    scheduled_snapshots_config {
      enabled = false
    }
  }
}

Esempio:

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

Passaggi successivi