Managed Airflow (terza generazione) | Managed Airflow (seconda generazione) | Managed Airflow (prima generazione legacy)
Questa pagina spiega come salvare e caricare lo stato dell'ambiente utilizzando gli snapshot dell'ambiente.
Puoi configurare l'ambiente in modo da salvare automaticamente gli snapshot. Per ulteriori informazioni, consulta Configurare gli snapshot pianificati.
Informazioni sugli snapshot dell'ambiente
Gli snapshot dell'ambiente memorizzano lo stato dell'ambiente. Puoi salvare e caricare gli snapshot dell'ambiente on demand.
Puoi utilizzare gli snapshot per:
- Eseguire la migrazione degli ambienti a una versione principale successiva di Managed Airflow o Airflow.
Come vengono archiviati gli snapshot
Uno snapshot dell'ambiente è un insieme di file che descrivono lo stato dell'ambiente e memorizzano il backup dei dati dell'ambiente.
Puoi creare più snapshot del tuo ambiente. Gli snapshot dell'ambiente non sono incrementali. Puoi utilizzare qualsiasi snapshot indipendentemente dagli altri snapshot.
Managed Airflow non elimina gli snapshot quando elimini l'ambiente.
Per impostazione predefinita, Managed Airflow archivia gli snapshot nella cartella snapshots/ nel bucket dell'ambiente. Puoi anche specificare una località 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. Questo non modifica il modo in cui lavori con il salvataggio e il caricamento degli snapshot nella Google Cloud console, ma tieni presente questo aspetto quando esegui operazioni direttamente sui file nel bucket. Per ulteriori informazioni, consulta Spazio dei nomi degli oggetti.
Considerazioni sulla sicurezza per gli snapshot
Per mitigare questo rischio per la sicurezza, puoi archiviare le informazioni sensibili utilizzate dai DAG Airflow, come chiavi o password, in Secret Manager. Per ulteriori informazioni, consulta Configurare Secret Manager per l'ambiente.
Assicurati di controllare le autorizzazioni di sicurezza per il bucket dell'ambiente. Se archivi 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 disponga di autorizzazioni sufficienti per salvare e caricare gli snapshot dal bucket.
Quali dati vengono salvati negli snapshot
Managed Airflow 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,/datae/pluginsdal bucket dell'ambiente. - La chiave Fernet dell'ambiente.
- Altre informazioni sulla configurazione dell'ambiente, come i parametri di scalabilità e prestazioni dell'ambiente. Managed Airflow non utilizza queste informazioni quando carica gli snapshot.
Quali dati vengono caricati dagli snapshot
Managed Airflow 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 la cronologia delle esecuzioni DAG.
I contenuti delle cartelle
/dags,/datae/pluginsdello snapshot vengono caricati nel bucket dell'ambiente.La chiave Fernet dello snapshot viene utilizzata per ricrittografare i dati dello snapshot con la chiave Fernet dell'ambiente. La chiave Fernet dell'ambiente rimane invariata.
Sebbene Managed Airflow 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,/datae/plugins. - Etichette dell'ambiente.
Le impostazioni applicate nell'infrastruttura di Airflow gestito senza utilizzare l'API Cloud Composer potrebbero andare perse quando carichi uno snapshot.
Informazioni sulle operazioni completate parzialmente
Quando carichi uno snapshot, l'operazione può essere completata correttamente, non riuscita o completata parzialmente:
- Le operazioni completate correttamente 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 vengono installati, ma gli override delle opzioni 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. Managed Airflow salta i passaggi che sono stati completati correttamente 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 Managed Airflow (prima generazione legacy) puoi solo salvare gli snapshot, ma non caricarli. Puoi caricare gli snapshot da un ambiente Airflow gestito (prima generazione legacy) agli ambienti Airflow gestito (seconda generazione).
Gli snapshot sono supportati in Managed Airflow (seconda generazione) versione 2.0.9 e successive. Managed Airflow (prima generazione legacy) 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 gli 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 è di 20 GB. Se il database dell'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,/pluginse/datanel bucket dell'ambiente deve essere inferiore a 100.000 per creare gli snapshot.Se utilizzi il meccanismo XCom per trasferire i file, assicurati di utilizzarlo in base 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. Valuta la possibilità di utilizzare 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 gli snapshot.
Se salvi gli snapshot in una località esterna al bucket dell'ambiente, il service account dell'ambiente deve disporre delle autorizzazioni di lettura e scrittura per la località 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 dell'ambiente
Managed Airflow salva gli snapshot dell'ambiente in una
sottocartella, relativa alla cartella specificata.
Il nome della cartella contiene l'ID progetto, la località dell'ambiente, il nome dell'ambiente e il timestamp in cui è stato salvato lo snapshot. Ad esempio: /snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.
Console
Per creare uno snapshot dell'ambiente:
Nella Google Cloud console, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre 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
/snapshotsnel bucket dell'ambiente, seleziona Usa la cartella degli snapshot nel bucket dell'ambiente (impostazione predefinita).Per archiviare lo snapshot nella cartella personalizzata, seleziona Usa una cartella personalizzata in un altro bucket, quindi specifica una località.
Fai clic su Salva.
gcloud
Il comando gcloud composer environments snapshots save salva uno snapshot dell'ambiente.
- L'argomento
snapshot-locationspecifica una cartella in cui viene salvato lo snapshot. Per impostazione predefinita, gli snapshot vengono salvati nella cartella/snapshotsnel bucket dell'ambiente. Ad esempio,gs://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_NAMEcon il nome dell'ambiente.LOCATIONcon la regione in cui si trova l'ambiente.- (Facoltativo)
SNAPSHOTS_FOLDERcon l'URI di una cartella del bucket in cui archiviare lo snapshot. Se ometti questo argomento, Airflow gestito salva lo snapshot nella cartella/snapshotsnel bucket dell'ambiente.
L'esempio seguente utilizza la località 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
environments.saveSnapshotAPI.Nel corpo della richiesta, nel campo
snapshotLocation, specifica la cartella in cui vuoi salvare lo snapshot.
{
"snapshotLocation": "SNAPSHOTS_FOLDER"
}
Sostituisci:
SNAPSHOTS_FOLDERcon 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 gli 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 Airflow gestito, non puoi salvare o caricare gli snapshot dell'ambiente da Terraform.
Caricare uno snapshot dell'ambiente
In Managed Airflow (prima generazione legacy) puoi solo salvare gli snapshot, ma non caricarli. Puoi caricare gli snapshot da un ambiente Airflow gestito (prima generazione legacy) agli ambienti Airflow gestito (seconda generazione). Ad esempio, quando esegui la migrazione degli ambienti a Managed Airflow (seconda generazione).