Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Questa pagina spiega come salvare e caricare lo stato dell'ambiente utilizzando gli snapshot dell'ambiente.
Puoi configurare il tuo ambiente in modo da salvare automaticamente gli snapshot. Per saperne di più, consulta la pagina Configurare gli snapshot pianificati.
Informazioni sugli snapshot dell'ambiente
Gli snapshot dell'ambiente memorizzano lo stato dell'ambiente. Puoi salvare e caricare gli snapshot di ambiente on demand.
Puoi utilizzare gli snapshot per:
- Esegui la migrazione degli ambienti a una versione principale successiva di Cloud Composer o Airflow.
Come vengono archiviati gli snapshot
Uno snapshot dell'ambiente è un insieme di file che descrivono lo stato dell'ambiente e archiviano il backup dei dati dell'ambiente.
Puoi creare più snapshot del tuo ambiente. Gli snapshot di ambiente non sono incrementali. Puoi utilizzare qualsiasi snapshot indipendentemente dagli altri.
Cloud Composer non elimina gli snapshot quando elimini l'ambiente.
Per impostazione predefinita, Cloud Composer archivia gli snapshot nella cartella snapshots/
del bucket dell'ambiente. Puoi anche specificare una posizione personalizzata
quando crei uno snapshot.
Sebbene l'interfaccia utente di Cloud Storage mostri i dati come cartelle per comodità, i bucket funzionano in una struttura di file flat. Ciò non modifica il modo in cui lavori con il salvataggio e il caricamento degli snapshot nella console Google Cloud , ma tieni presente questo aspetto quando esegui operazioni direttamente sui file nel bucket. Per maggiori informazioni, vedi Spazio dei nomi dell'oggetto.
Considerazioni sulla sicurezza per gli snapshot
Per ridurre questo rischio per la sicurezza, puoi archiviare informazioni sensibili utilizzate dai DAG di Airflow, come chiavi o password, in Secret Manager. Per ulteriori informazioni, vedi Configurare Secret Manager per il tuo ambiente.
Assicurati di controllare le autorizzazioni di sicurezza per il bucket del tuo ambiente. Se memorizzi gli snapshot dell'ambiente in un bucket personalizzato, assicurati che le autorizzazioni di accesso siano configurate correttamente nel tuo progetto. Quando assegni le autorizzazioni, assicurati che il service account dell'ambiente disponga di autorizzazioni sufficienti per salvare e caricare gli snapshot dal bucket.
Quali dati vengono salvati negli snapshot
Cloud Composer salva i seguenti dati negli snapshot:
- Override della configurazione Airflow.
- Variabili di ambiente.
- Elenco dei pacchetti PyPI personalizzati, come requisiti.
- Un backup del database Airflow, inclusi gli stati delle attività eseguite e la cronologia delle esecuzioni DAG.
- Un backup delle cartelle
/dags
,/data
e/plugins
dal bucket dell'ambiente. - 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 quando carica gli 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 ignorare l'installazione).
I contenuti del database Airflow, inclusi gli stati delle attività eseguite e la cronologia delle esecuzioni dei DAG.
I contenuti delle cartelle
/dags
,/data
e/plugins
dello snapshot vengono caricati nel bucket dell'ambiente.La chiave Fernet dello snapshot viene utilizzata per ricriptare i dati dello snapshot con la chiave Fernet dell'ambiente. La chiave Fernet dell'ambiente rimane invariata.
Sebbene Cloud Composer memorizzi alcune informazioni sulla configurazione dell'ambiente negli snapshot, queste non vengono utilizzate durante il caricamento degli snapshot. I seguenti parametri dell'ambiente non cambiano quando carichi uno snapshot:
- Configurazione dell'ambiente, ad esempio parametri di scalabilità e prestazioni dell'ambiente.
- Configurazione di rete dell'ambiente.
- Contenuti del bucket dell'ambiente al di fuori delle cartelle
/dags
,/data
e/plugins
. - Etichette dell'ambiente.
Qualsiasi impostazione applicata nell'infrastruttura Cloud Composer senza utilizzare l'API Cloud Composer potrebbe andare persa quando carichi uno snapshot.
Informazioni sulle operazioni parzialmente completate
Quando carichi uno snapshot, l'operazione può essere riuscita, non riuscita o completata parzialmente:
- Le operazioni riuscite caricano tutti i dati dallo snapshot.
- Le operazioni non riuscite non introducono modifiche.
- Le operazioni completate parzialmente caricano un sottoinsieme di dati dallo snapshot. Queste operazioni vengono segnalate come non riuscite, ma il messaggio di errore indica quali dati sono stati caricati correttamente. Ad esempio, se i pacchetti PyPI sono installati, ma gli override dell'opzione di configurazione di Airflow non sono riusciti, il messaggio di errore lo indica.
Per un'operazione completata parzialmente, puoi provare a caricare di nuovo lo stesso snapshot. Cloud Composer ignora i passaggi riusciti nel tentativo precedente. Ad esempio, se un'operazione non è riuscita a causa di un timeout, ma il database è stato caricato correttamente, il tentativo successivo non carica di nuovo il database.
Prima di iniziare
- In Cloud Composer 1 puoi solo salvare gli snapshot, ma non caricarli. Puoi caricare snapshot da un ambiente Cloud Composer 1 agli ambienti Cloud Composer 2.
Gli snapshot sono supportati in Cloud Composer 2 versione 2.0.9 e successive. Cloud Composer 1 supporta il salvataggio degli snapshot dell'ambiente nelle versioni 1.18.5 e successive.
Gli snapshot non creano un ambiente. Se vuoi caricare uno snapshot da un ambiente a un altro, devi prima creare un nuovo ambiente e poi caricarvi lo snapshot.
Non puoi caricare snapshot negli ambienti in stato di errore. Non è possibile correggere questi ambienti caricando uno snapshot. Puoi comunque caricare uno snapshot esistente in un nuovo ambiente.
La dimensione massima del database Airflow che supporta gli snapshot è 20 GB. Se il database del tuo ambiente occupa più di 20 GB, riduci le dimensioni del database Airflow prima di salvare uno snapshot.
Il numero totale di oggetti nelle cartelle
/dags
,/plugins
e/data
nel bucket dell'ambiente deve essere inferiore a 100.000 per creare snapshot.Se utilizzi il meccanismo XCom per trasferire i file, assicurati di utilizzarlo in conformità alle linee guida di Airflow. Il trasferimento di file di grandi dimensioni o di un numero elevato di file utilizzando XCom influisce sulle prestazioni del database Airflow e può causare errori durante il caricamento degli snapshot o l'upgrade dell'ambiente. Prendi in considerazione l'utilizzo di alternative come Cloud Storage per trasferire grandi volumi di dati.
La lunghezza massima del nome di un oggetto nel bucket dell'ambiente non deve superare i 1024 simboli. In caso contrario, non è possibile creare snapshot.
Se salvi gli snapshot in una posizione esterna al bucket del tuo ambiente, l'account di servizio del tuo ambiente deve disporre delle autorizzazioni di lettura e scrittura per la posizione specificata. Ad esempio, il ruolo Amministratore oggetti Storage dispone di queste autorizzazioni. Puoi applicarlo a un progetto o a un bucket specifico.
La creazione e l'archiviazione degli snapshot comportano costi aggiuntivi, correlati a Cloud Storage. Per ulteriori informazioni, vedi Prezzi.
Salvare uno snapshot di ambiente
Cloud Composer salva gli snapshot dell'ambiente in una sottocartella, relativa alla cartella che specifichi.
Il nome della cartella contiene l'ID progetto, la posizione dell'ambiente, il nome dell'ambiente e il timestamp in cui è stata salvata l'istantanea. Ad esempio:
/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00
.
Console
Per creare uno snapshot del tuo ambiente:
Nella console Google Cloud , vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente. Viene visualizzata la pagina Dettagli ambiente.
Fai clic su Salva snapshot.
Nella finestra di dialogo Salva snapshot, seleziona dove archiviare lo snapshot:
Per archiviare lo snapshot nella cartella
/snapshots
nel bucket dell'ambiente, seleziona Utilizza la cartella snapshot nel bucket dell'ambiente (impostazione predefinita).Per archiviare lo snapshot nella cartella personalizzata, seleziona Usa una cartella personalizzata in un altro bucket, poi specifica una posizione.
Fai clic su Salva.
gcloud
Il comando gcloud composer environments snapshots save
salva uno snapshot dell'ambiente.
- L'argomento
snapshot-location
specifica una cartella in cui viene salvato lo snapshot. Per impostazione predefinita, gli snapshot vengono salvati nella cartella/snapshots
del bucket dell'ambiente. Ad esempiogs://us-central1-example-916807e1-bucket/snapshots
. Puoi anche specificare qualsiasi altra cartella.
Per salvare uno snapshot dell'ambiente, esegui:
gcloud 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.
L'esempio seguente utilizza la posizione predefinita:
gcloud composer environments snapshots save \
example-environment \
--location us-central1
L'esempio seguente salva in una cartella personalizzata:
gcloud composer environments snapshots save \
example-environment \
--location us-central1 \
--snapshot-location "gs://example-bucket/environment_snapshots"
API
Crea una richiesta API
environments.saveSnapshot
.Nel corpo della richiesta, nel campo
snapshotLocation
, specifica la cartella in cui vuoi salvare lo snapshot.
{
"snapshotLocation": "SNAPSHOTS_FOLDER"
}
Sostituisci:
SNAPSHOTS_FOLDER
con l'URI di una cartella del bucket in cui salvare lo snapshot.
Esempio:
// POST https://composer.googleapis.com/v1/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 su un ambiente e gli snapshot risultanti non fanno parte della definizione di un ambiente. Poiché Terraform gestisce solo la configurazione dell'ambiente Cloud Composer, non puoi salvare o caricare snapshot dell'ambiente.
Caricare uno snapshot di ambiente
In Cloud Composer 1 puoi solo salvare gli snapshot, ma non caricarli. Puoi caricare snapshot da un ambiente Cloud Composer 1 agli ambienti Cloud Composer 2. Ad esempio, quando migri gli ambienti a Cloud Composer 2.