Salva e carica gli snapshot dell'ambiente

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Questa pagina spiega come salvare e caricare lo stato dell'ambiente utilizzando snapshot dell'ambiente.

Puoi configurare l'ambiente in modo che salvi automaticamente gli snapshot. Per ulteriori informazioni consulta Configurare gli snapshot pianificati.

Informazioni sugli snapshot dell'ambiente

Gli snapshot di ambiente archiviano lo stato dell'ambiente. Puoi salvare e degli snapshot dell'ambiente on demand.

Puoi utilizzare gli snapshot per:

  • Ripristina l'ambiente a uno stato precedente. Crea backup dei tuoi di archiviazione utilizzando gli snapshot, quindi carica uno di questi completamente gestito di Google Cloud. Ad esempio, puoi eseguire il rollback di un'operazione di aggiornamento installa i pacchetti PyPI o esegue l'override delle opzioni di configurazione di Airflow, dopo l'aggiornamento dell'ambiente.

  • Esegui upgrade affiancati e ambienti di copia. Crea uno snapshot di un esistente, crea un nuovo ambiente che utilizzi lo stesso ambiente o una versione successiva di Cloud Composer, quindi applica lo snapshot a questo nuovo completamente gestito di Google Cloud. Questa procedura è simile alla è in corso la migrazione. Assicurati di mettere in pausa i DAG prima crei lo snapshot, per evitare esecuzioni dei DAG duplicate.

Come vengono archiviati gli snapshot

Uno snapshot di ambiente è un insieme di file che descrivono lo stato dell'ambiente e archiviare il backup dei dati dell'ambiente.

Puoi creare più snapshot dell'ambiente. Snapshot di ambiente non sono incrementali. Puoi utilizzare qualsiasi snapshot indipendentemente dagli altri.

Cloud Composer non elimina gli snapshot quando elimini completamente gestito di Google Cloud.

Per impostazione predefinita, Cloud Composer archivia gli snapshot in snapshots/ cartella nel bucket dell'ambiente. Puoi anche specificare una località personalizzata quando crei uno snapshot.

Mentre l'interfaccia utente di Cloud Storage mostra i dati come cartelle per comodità, i bucket in una struttura flat-file. Questa operazione non influisce sul modo in cui utilizzi il salvataggio e degli snapshot nella console Google Cloud, ma tienilo presente quando eseguire operazioni direttamente sui file del tuo bucket. Per ulteriori informazioni, vedi Spazio dei nomi dell'oggetto.

Considerazioni sulla sicurezza per gli snapshot

Per ridurre questo rischio per la sicurezza, puoi archiviare informazioni sensibili utilizzata dai DAG di Airflow, come chiavi o password, tramite Secret Manager. Per ulteriori informazioni, vedi Configura Secret Manager per il tuo ambiente.

Assicurati di controllare le autorizzazioni di sicurezza per il bucket del tuo ambiente. Se di archiviare gli snapshot dell'ambiente in un bucket personalizzato, le relative autorizzazioni di accesso siano configurate correttamente nelle progetto. Quando assegni le autorizzazioni, assicurati che il servizio account disponi di autorizzazioni sufficienti per salvare e caricare gli snapshot di sincronizzare la directory di una VM con un bucket.

Quali dati vengono salvati negli snapshot

Cloud Composer salva i seguenti dati in snapshot:

  • Override della configurazione Airflow.
  • Variabili di ambiente.
  • Elenco di pacchetti PyPI personalizzati, come requisiti.
  • Un backup del database Airflow, inclusi gli stati delle attività eseguite e il DAG delle esecuzioni.
  • Un backup delle cartelle /dags, /data e /plugins dal del bucket dell'ambiente.
  • La chiave Fernet dell'ambiente.
  • Altre informazioni sulla configurazione dell'ambiente, ad esempio i parametri di scalabilità e prestazioni dell'ambiente. Cloud Composer non utilizza queste informazioni durante il caricamento snapshot.

Quali dati vengono caricati dagli snapshot

Cloud Composer carica i seguenti dati dagli snapshot:

  • Override della configurazione Airflow.
  • Variabili di ambiente.
  • Pacchetti PyPI personalizzati (a meno che tu non scelga di saltare l'installazione).

  • I contenuti del database Airflow, inclusi gli stati delle attività eseguite e Cronologia delle esecuzioni del DAG.

  • Contenuti delle cartelle /dags, /data e /plugins dallo snapshot vengono caricati nel bucket dell'ambiente.

  • La chiave Fernet dello snapshot viene utilizzata per criptare nuovamente i dati con la chiave Fernet dell'ambiente. La chiave fernet del rimane invariato.

Sebbene Cloud Composer archivi alcune informazioni configurazione dell'ambiente negli snapshot, non viene utilizzato durante il caricamento snapshot. I seguenti parametri dell'ambiente non cambiano quando per caricare uno snapshot:

  • Configurazione dell'ambiente, ad esempio scalabilità e prestazioni dell'ambiente parametri.
  • Configurazione di networking dell'ambiente.
  • I contenuti del bucket dell'ambiente al di fuori di /dags, /data e /plugins cartelle.
  • Etichette dell'ambiente.

Tutte le impostazioni che hai applicato nell'infrastruttura Cloud Composer senza utilizzare l'API Cloud Composer potrebbe andare persa senza dover creare uno snapshot.

Informazioni sulle operazioni parzialmente completate

Quando carichi uno snapshot, l'operazione può avere esito positivo, non riuscito o parzialmente completato:

  • Le operazioni riuscite caricano tutti i dati dallo snapshot.
  • Le operazioni non riuscite non introducono alcuna modifica.
  • Le operazioni parzialmente completate caricano un sottoinsieme di dati dallo snapshot. Tale le operazioni vengono segnalate come non riuscite, ma il messaggio di errore indica dati caricati correttamente. Ad esempio, se i pacchetti PyPI sono installati, ma gli override dell'opzione di configurazione di Airflow non sono riusciti, l'errore questo è un messaggio di errore.

Per un'operazione parzialmente completata, puoi provare a caricare lo stesso snapshot di nuovo. Cloud Composer salta i passaggi riusciti nella tentativo precedente. Ad esempio, se un'operazione non è riuscita per un timeout, ma database è stato caricato correttamente, il tentativo successivo non carica di nuovo nel database.

Prima di iniziare

  • Gli snapshot sono supportati in Cloud Composer 2 versione 2.0.9 e successive. Cloud Composer 1 supporta il salvataggio degli snapshot dell'ambiente per le versioni >= 1.18.5.

  • Gli snapshot non creano un ambiente. Se vuoi caricare uno snapshot da un ambiente a un altro, devi prima creare una nuova dell'ambiente di rete e caricare lo snapshot al suo interno.

  • Non puoi caricare snapshot in ambienti in stato di errore. È impossibile correggere questi ambienti caricando uno snapshot. Puoi ancora per caricare uno snapshot esistente in un nuovo ambiente.

  • Puoi caricare snapshot solo sulla stessa versione o su una versione successiva di Cloud Composer o Airflow. Ad esempio, non puoi caricare da Cloud Composer 2.0.2 a un ambiente con Cloud Composer 2.0.1. Come ulteriore esempio, non è possibile caricare uno snapshot da Airflow 2.2.3 ad Airflow 2.1.4.

  • Gli snapshot non cambiano la versione di Cloud Composer. Se esegui l'upgrade dell'ambiente a una versione successiva Cloud Composer, quindi carica uno snapshot di una versione precedente allora il tuo ambiente manterrà la sua versione attuale con Cloud Composer. Ad esempio, il caricamento di uno snapshot da Cloud Composer 2.0.1 a Cloud Composer 2.0.2 non ripristinare l'ambiente a Cloud Composer 2.0.1.

  • La dimensione massima del database Airflow che supporta gli snapshot è 20 GB. Se il database del tuo ambiente richiede più di 20 GB, riduci le dimensioni del database Airflow prima di salvare un senza dover creare uno snapshot.

  • La lunghezza massima del nome di un oggetto nel bucket dell'ambiente non deve essere più lunghi di 1024 simboli. In caso contrario, non sarà possibile creare snapshot.

  • Se salvi gli snapshot in una località esterna bucket, l'account di servizio del tuo ambiente deve avere le autorizzazioni di lettura e scrittura per la località specificata. Ad esempio, Il ruolo Amministratore oggetti Storage dispone di queste autorizzazioni. Tu può applicarla a un progetto o a un bucket specifico.

  • La creazione e l'archiviazione di snapshot produce costi aggiuntivi, correlati in Cloud Storage. Per ulteriori informazioni, vedi Prezzi.

Salva uno snapshot di ambiente

Cloud Composer salva gli snapshot dell'ambiente sottocartella, in base alla cartella specificata. Il nome della cartella contiene l'ID progetto, la posizione dell'ambiente, il nome dell'ambiente e il timestamp relativo al salvataggio dello snapshot. Ad esempio: /snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.

Console

Per creare uno snapshot del tuo ambiente:

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

    Vai ad Ambienti

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

  3. Fai clic su Salva snapshot.

  4. Nella finestra di dialogo Salva snapshot, seleziona dove archiviare lo snapshot:

    • Per archiviare lo snapshot nella cartella /snapshots del cluster un bucket, seleziona Utilizza la cartella snapshot nel bucket di ambiente (impostazione predefinita).

    • Per archiviare lo snapshot nella cartella personalizzata, seleziona Utilizza una cartella personalizzata in un altro bucket, quindi specifica una località.

  5. Fai clic su Salva.

gcloud

Il comando gcloud beta composer environments snapshots save salva uno snapshot dell'ambiente.

  • L'argomento snapshot-location specifica una cartella in cui si trova lo snapshot salvate. Per impostazione predefinita, gli snapshot vengono salvati nella cartella /snapshots del del bucket dell'ambiente. Ad esempio: gs://us-central1-example-916807e1-bucket/snapshots. Puoi anche specificare in qualsiasi altra cartella.

Per salvare uno snapshot del tuo ambiente, esegui:

gcloud beta composer environments snapshots save \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --snapshot-location "SNAPSHOTS_FOLDER"

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • (Facoltativo) SNAPSHOTS_FOLDER con l'URI di una cartella del bucket in cui archiviare lo snapshot. Se ometti questo argomento, Cloud Composer salva lo snapshot nella cartella /snapshots del bucket dell'ambiente.

Nell'esempio seguente viene utilizzata la località predefinita:

gcloud beta composer environments snapshots save \
  example-environment \
  --location us-central1

L'esempio seguente viene salvato in una cartella personalizzata:

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

API

  1. Costruire un environments.saveSnapshot richiesta API.

  2. Nel corpo della richiesta, nel campo snapshotLocation, specifica nella cartella in cui vuoi salvare lo snapshot.

{
  "snapshotLocation": "SNAPSHOTS_FOLDER"
}

Sostituisci:

  • SNAPSHOTS_FOLDER con l'URI di una cartella del bucket in cui e salvare l'istantanea.

Esempio:

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

Non è possibile salvare e caricare snapshot dell'ambiente da Terraform.

Il salvataggio e il caricamento degli snapshot sono azioni eseguite in un ambiente gli snapshot risultanti non fanno parte della definizione di un ambiente. Dal giorno Terraform gestisce solo la configurazione dell'ambiente Cloud Composer, non puoi salvare o caricare snapshot dell'ambiente al suo interno.

Carica uno snapshot di ambiente

Considera la seguente situazione. Ad esempio: catch-up è abilitato e Airflow esegue un DAG in base a una pianificazione compresa tra il momento in cui è stato creato lo snapshot e quello in cui caricato. In questo caso, dopo aver caricato lo snapshot, Airflow non ha informazioni sull'esecuzione del DAG che si è verificata, quindi Airflow esegue di nuovo il DAG per tempo e dati.

Come ulteriore esempio, consideriamo un DAG che viene eseguito in base a una pianificazione giornaliera. Fai un snapshot, Airflow esegue questo DAG e, in seguito, carichi lo snapshot lo stesso giorno. In questo caso, Airflow esegue di nuovo il DAG, anche se il recupero viene disattivata.

Console

Per caricare uno snapshot nell'ambiente Cloud Composer 2:

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

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome del tuo completamente gestito di Google Cloud. Si apre la pagina Dettagli ambiente.

  3. Fai clic su Carica istantanea.

  4. Nella finestra di dialogo Carica istantanea, fai clic su Sfoglia.

  5. Seleziona una cartella in cui archiviare lo snapshot. Il nome della cartella elenca ID del progetto, località dell'ambiente e timestamp al momento l'istantanea è stata salvata. Ad esempio: /snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.

  6. (Facoltativo) Per saltare l'installazione dei pacchetti PyPI personalizzati dalla dello snapshot, seleziona Ignora l'installazione dei pacchetti PyPI. Se carichi un snapshot di un ambiente con pacchetti PyPI personalizzati, Cloud Composer non installa questi pacchetti personalizzati.

  7. Fai clic su Carica e attendi che Cloud Composer carichi lo snapshot.

gcloud

Il comando gcloud beta composer environments snapshots load carica di creare uno snapshot nell'ambiente.

  • L'argomento --snapshot-path specifica una cartella in cui si trova lo snapshot individuarlo.

    Il nome della cartella elenca l'ID del tuo progetto, la posizione geografica e il timestamp in cui è stato salvato lo snapshot. Ad esempio: gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.

  • (Facoltativo) L'argomento --skip-pypi-packages-installation ignora il passaggio l'installazione di pacchetti PyPI personalizzati dallo snapshot. Se carichi un snapshot di un ambiente con pacchetti PyPI personalizzati, Cloud Composer non installa questi pacchetti personalizzati.

gcloud beta composer environments snapshots load \
  DESTINATION_ENVIRONMENT_NAME \
  --location LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Sostituisci:

  • DESTINATION_ENVIRONMENT_NAME con il nome dell'ambiente in cui vuoi caricare lo snapshot.
  • LOCATION con la regione in cui si trova l'ambiente.
  • SNAPSHOT_PATH con l'URI di un bucket, seguito dal percorso del senza dover creare uno snapshot.

Esempio:

gcloud beta composer environments snapshots load \
  example-environment \
  --location us-central1 \
  --snapshot-path "gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00"

API

  1. Costruire un environments.loadSnapshot richiesta API.

  2. Nel corpo della richiesta, nel campo snapshotPath, specifica l'URI di un bucket, seguito dal percorso dello snapshot. Il nome del nella cartella sono elencati l'ID del progetto, la posizione il timestamp relativo al salvataggio dello snapshot. Ad esempio: gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.

  3. (Facoltativo) Nel corpo della richiesta, nel campo skipPypiPackagesInstallation specificare se Cloud Composer deve saltare l'installazione di pacchetti PyPI personalizzati dallo snapshot. Se carichi un snapshot di un ambiente con pacchetti PyPI personalizzati, Cloud Composer non installa questi pacchetti personalizzati.

    Questo campo è facoltativo. Se ometti questo campo, Cloud Composer installa i pacchetti PyPI dallo snapshot.

{
  "snapshotPath": "SNAPSHOT_PATH"
}

Sostituisci:

  • SNAPSHOT_PATH con l'URI di una cartella del bucket in cui e archiviare lo snapshot.

Esempio:

// POST https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment:loadSnapshot

{
  "snapshotPath": "gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00",
  "skipPypiPackagesInstallation": "False"
}

Terraform

Non è possibile salvare e caricare snapshot dell'ambiente utilizzando Terraform.

Il salvataggio e il caricamento degli snapshot sono azioni eseguite in un ambiente gli snapshot risultanti non fanno parte della definizione di un ambiente. Dal giorno Terraform gestisce solo la configurazione dell'ambiente Cloud Composer, non puoi salvare o caricare snapshot dell'ambiente al suo interno.

Passaggi successivi