Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Questa pagina descrive come eseguire l'upgrade dell'ambiente a una nuova versione di Airflow.
Informazioni sulle operazioni di upgrade
In Managed Airflow (Gen 3), non gestisci la versione di Managed Airflow del tuo ambiente:
- Managed Airflow esegue automaticamente l'upgrade dei componenti dell'infrastruttura del tuo ambiente. Questi componenti sono correlati alla funzionalità di Managed Airflow e non modificano il funzionamento di Airflow o l'esecuzione dei DAG Airflow.
- Managed Airflow non esegue automaticamente l'upgrade della versione e della build di Airflow, dei componenti Airflow o dei componenti strettamente correlati ai workload Airflow. Non vengono modificati quando i componenti dell'infrastruttura vengono aggiornati automaticamente.
- Puoi eseguire l'upgrade manuale a una nuova versione o build di Airflow .
Ad esempio, puoi utilizzare la stessa versione e lo stesso build di Airflow per diversi mesi, senza eseguire upgrade, e il tuo ambiente riceve comunque gli aggiornamenti, le correzioni e i miglioramenti più recenti di Managed Airflow dei componenti dell'infrastruttura dell'ambiente. Quando in un secondo momento decidi di passare a una nuova versione o build di Airflow, esegui l'upgrade della versione di Airflow nel tuo ambiente.
Informazioni sull'upgrade della versione di Airflow
Il tuo ambiente modifica la versione o la build di Airflow nel seguente modo:
Controlli la versione (e la build) di Airflow del tuo ambiente. Puoi eseguire l'operazione di upgrade della versione di Airflow quando scegli di passare a una versione diversa di Airflow per il tuo ambiente. Ad esempio, questo potrebbe accadere se la versione e la build attuali di Airflow non sono più supportate.
Managed Airflow esegue nuovamente il deployment dei componenti Airflow del tuo ambiente utilizzando la versione e la build di Airflow specificate.
Managed Airflow applica le modifiche alla configurazione di Airflow, ad esempio i pacchetti PyPI personalizzati o gli override delle opzioni di configurazione di Airflow, se il tuo ambiente li aveva prima dell'upgrade.
Managed Airflow aggiorna la connessione
airflow_dbdi Airflow in modo che punti al nuovo database Cloud SQL.
La modifica della versione di Airflow non cambia la modalità di connessione alle risorse nel tuo ambiente, ad esempio l'URL del bucket del tuo ambiente o il server web di Airflow.
Informazioni sulle operazioni di upgrade automatico dell'infrastruttura
Managed Airflow esegue periodicamente operazioni di upgrade automatico dell'infrastruttura:
Le operazioni di upgrade automatico dell'infrastruttura vengono eseguite periodicamente durante i periodi di manutenzione specificati per l'ambiente.
Non è possibile disabilitare gli upgrade automatici dell'infrastruttura in Managed Airflow (Gen 3). Puoi controllare i periodi di tempo in cui è possibile eseguire gli upgrade automatici specificando periodi di manutenzione personalizzati per il tuo ambiente.
Questa operazione è visibile nella console Google Cloud e nei log dell'ambiente, come qualsiasi altra operazione a lunga esecuzione. Mentre l'operazione è in corso, non puoi avviare altre operazioni a livello di ambiente (ma puoi comunque eseguire i DAG di Airflow).
In alcuni casi, gli upgrade automatici dell'infrastruttura possono riavviare i componenti di Airflow. Durante questi riavvii, i worker Airflow vengono terminati in modo controllato con un periodo di tolleranza di 24 ore. Se hai attività che richiedono più di 24 ore per essere completate, valuta la possibilità di utilizzare operatori differibili. Un upgrade potrebbe comportare un breve periodo di indisponibilità per i componenti dell'infrastruttura dell'ambiente, come il monitoraggio dell'ambiente.
Limitazioni delle operazioni di upgrade
Le operazioni di upgrade presentano le seguenti limitazioni:
Le release di Managed Airflow vengono implementate gradualmente in tutte le regioni supportate da Managed Airflow nell'arco di diversi giorni. L'ultima versione di una release in corso potrebbe non essere ancora disponibile nella tua regione.
Non puoi eseguire il downgrade a una versione o build precedente di Airflow.
Non puoi eseguire l'upgrade dell'ambiente se il database Airflow contiene più di 20 GB di dati. Durante un upgrade, viene mostrato un avviso se le dimensioni del database Airflow sono superiori a 20 GB. In questo caso, esegui la manutenzione del database per ridurre le dimensioni del database.
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.
Prima di iniziare
Ti consigliamo di creare un nuovo snapshot dell'ambiente per poterlo ricreare in caso di necessità.
Il tuo account deve avere un ruolo che possa attivare le operazioni di upgrade dell'ambiente. Inoltre, il account di servizio dell'ambiente deve disporre di un ruolo con autorizzazioni sufficienti per eseguire le operazioni di upgrade. Per saperne di più, consulta Controllo dell'accesso.
Controlla che l'ambiente sia aggiornato
Managed Airflow mostra avvisi quando la build di Airflow del tuo ambiente si avvicina alla data di fine del supporto. Puoi utilizzare questi avvisi per mantenere sempre il tuo ambiente supportato.
Managed Airflow tiene traccia della versione e della build di Airflow su cui si basa il tuo ambiente. Quando si avvicina la data di fine del supporto, puoi visualizzare un avviso nell'elenco degli ambienti e nella pagina Dettagli ambiente.
Per controllare se il tuo ambiente è aggiornato:
Console
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.
Vai alla scheda Configurazione ambiente.
Nel campo Versione immagine viene visualizzato uno dei seguenti messaggi:
Ultima versione disponibile. L'immagine dell'ambiente è completamente supportata.
Nuova versione disponibile. L'immagine dell'ambiente è completamente supportata e puoi eseguirne l'upgrade a una versione successiva.
Il supporto per questa versione dell'immagine termina tra... L'immagine del tuo ambiente si avvicina alla fine del periodo di assistenza completo.
Questa versione non è supportata a partire dal giorno… Il tuo ambiente ha superato il periodo di assistenza completo.
gcloud
Questa funzionalità non è disponibile tramite Google Cloud CLI. Puoi visualizzare gli upgrade suggeriti, che mostrano le nuove versioni disponibili.
API
Questa funzionalità non è disponibile tramite API. Puoi visualizzare gli upgrade suggeriti, che mostrano le nuove versioni disponibili.
Visualizza gli upgrade suggeriti
Managed Airflow fornisce un elenco di build di Airflow a cui puoi eseguire l'upgrade del tuo ambiente.
Per visualizzare le versioni di Managed Airflow suggerite per un upgrade:
Console
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.
Vai alla scheda Configurazione ambiente e fai clic su Esegui upgrade della versione immagine.
Per l'elenco delle versioni suggerite, fai clic sul menu a discesa Versione immagine di Managed Airflow.
gcloud
gcloud composer environments list-upgrades \
ENVIRONMENT_NAME \
--location LOCATION
Sostituisci:
ENVIRONMENT_NAMEcon il nome dell'ambiente.LOCATIONcon la regione in cui si trova l'ambiente.
Esempio:
gcloud composer environments list-upgrades example-environment \
--location us-central1
API
Puoi visualizzare le versioni disponibili per una località. Per farlo, crea una richiesta API
imageVersions.list.
Ad esempio:
// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions
Verifica la presenza di conflitti tra i pacchetti PyPI
Puoi verificare se i pacchetti PyPI installati nel tuo ambiente presentano conflitti con i pacchetti preinstallati nella nuova versione o build di Airflow.
Un controllo riuscito indica che non ci sono conflitti nelle dipendenze dei pacchetti PyPI tra la versione attuale e quella specificata. Tuttavia, un'operazione di upgrade potrebbe comunque non riuscire per altri motivi.
Console
Per eseguire un controllo dell'upgrade per il 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.
Vai alla scheda Configurazione ambiente, individua la voce Versione immagine e fai clic su Upgrade.
Nella finestra di dialogo Upgrade della versione dell'ambiente, seleziona una versione o una build di Airflow a cui vuoi eseguire l'upgrade dall'elenco a discesa Nuova versione.
Nella sezione Compatibilità dei pacchetti PyPI, fai clic su Verifica la presenza di conflitti.
Attendi il completamento del controllo. Se si verificano conflitti tra le dipendenze dei pacchetti PyPI, i messaggi di errore visualizzati contengono dettagli sui pacchetti e sulle versioni dei pacchetti in conflitto.
gcloud
Per eseguire un controllo dell'upgrade per il tuo ambiente, esegui il comando
environments check-upgrade
con la versione o la build di Airflow
a cui vuoi eseguire l'upgrade.
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--airflow-version VERSION
Sostituisci:
ENVIRONMENT_NAMEcon il nome dell'ambiente.LOCATIONcon la regione in cui si trova l'ambiente.VERSIONcon la nuova versione e build di Airflow a cui vuoi eseguire l'upgrade nel formatoairflow-x.y.z-build.t. Puoi utilizzare tutti gli alias di versione.
Esempio:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--airflow-version airflow-2.10.5-build.34
Output di esempio:
Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-3-airflow-2.10.5-build.34. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...
Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.CheckUpgradeResponse
buildLogUri: ...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at ...
Error details: tensorboard 2.2.2 has requirement
setuptools>=41.0.0, but you have setuptools 40.3.0.
In alternativa, puoi eseguire un controllo dell'upgrade in modo asincrono. Utilizza l'argomento
--async per effettuare una chiamata asincrona, quindi controlla il risultato con
il comando gcloud composer operations describe.
API
Crea una richiesta API environments.checkUpgrade.
Specifica la versione dell'immagine nel campo imageVersion:
{
"imageVersion": "VERSION"
}
Sostituisci VERSION con la nuova versione a cui vuoi eseguire l'upgrade, nel formato composer-3-airflow-x.y.z-build.t.
Verifica la presenza di conflitti con Managed Airflow (Gen 3)
Managed Airflow (Gen 3) è l'ultima versione principale di Managed Airflow. Puoi verificare se un ambiente Managed Airflow (Gen 2) può essere eseguito l'upgrade a Managed Airflow (Gen 3) con un controllo dell'upgrade. La seguente descrizione si applica agli ambienti Managed Airflow (2ª gen.).
Sebbene non sia possibile eseguire la migrazione dell'ambiente da Managed Airflow (Gen 2) a Managed Airflow (Gen 3) sul posto, puoi verificare la presenza di problemi di compatibilità utilizzando un controllo dell'upgrade. Ti consigliamo di farlo prima di eseguire la migrazione a Managed Airflow (Gen 3).
Per verificare la compatibilità con Managed Airflow (Gen 3), esegui un controllo regolare dell'upgrade dell'ambiente Managed Airflow (Gen 2) e specifica una versione di Managed Airflow (Gen 3) come target.
Ogni conflitto segnalato può essere di uno dei seguenti tipi:
Il report sui conflitti
BLOCKINGelenca gli elementi di configurazione dell'ambiente incompatibili che non sono supportati in Managed Airflow (Gen 3). Ti consigliamo di risolvere questi conflitti prima di iniziare una migrazione a Managed Airflow (Gen 3).NON_BLOCKINGsegnala i conflitti tra gli elementi di configurazione dell'ambiente diversi in Managed Airflow (Gen 3) e che potrebbero causare comportamenti imprevisti. Ad esempio, le modifiche ai valori predefiniti, come le finestre di manutenzione predefinite, vengono segnalate come conflitti non bloccanti. Ti consigliamo di verificare se questi conflitti possono causare problemi prima di iniziare il processo di migrazione.Nell'ambito di questo controllo vengono segnalati anche i conflitti tra i pacchetti PyPI. Vengono registrati separatamente dai conflitti di configurazione, allo stesso modo di un normale controllo della compatibilità dei pacchetti PyPI.
Console
Per verificare la compatibilità con Managed Airflow (Gen 3), utilizza gcloud CLI o l'API Managed Airflow. La consoleGoogle Cloud supporta solo i controlli di compatibilità dei pacchetti PyPI.
gcloud
Per verificare la compatibilità con Managed Airflow (3ª gen.), esegui il
comando environments check-upgrade e specifica una versione di Managed Airflow (3ª gen.) come target.
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version COMPOSER_3_VERSION
Sostituisci:
ENVIRONMENT_NAMEcon il nome dell'ambiente.LOCATIONcon la regione in cui si trova l'ambiente.COMPOSER_3_VERSIONcon la versione e la build di Airflow a cui vuoi eseguire l'upgrade nel formatoairflow-x.y.z-build.t. Puoi utilizzare tutti gli alias di versione.
Esempio:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--image-version composer-3-airflow-2
Messaggi di esempio relativi ai conflitti:
...
- message: Error validating property [core]unit_test_mode. Overriding [core]
unit_test_mode is not permitted.
type: BLOCKING
- message: Environment variables [GOOGLE_CLOUD_PROJECT] may not be overridden.
type: BLOCKING
- message: You have to specify Worker CPUs to be 0.5, 1.0 or multiples of 2.0.
type: BLOCKING
- message: The environment uses a default maintenance window, which is
different in Composer 2 and Composer 3. Unless set to a custom value, the
maintenance window will be changed to a new default after the upgrade.
type: NON_BLOCKING
...
In alternativa, puoi eseguire questo controllo in modo asincrono. Utilizza l'argomento
--async per effettuare una chiamata asincrona, quindi controlla il risultato con
il comando gcloud composer operations describe.
API
Crea una richiesta API environments.checkUpgrade.
Specifica la versione dell'immagine nel campo imageVersion:
{
"imageVersion": "COMPOSER_3_VERSION"
}
Sostituisci COMPOSER_3_VERSION con la versione e la build di Airflow
a cui vuoi eseguire l'upgrade, nel formato airflow-x.y.z-build.t. Puoi utilizzare
tutti gli alias di versione.
Esegui l'upgrade dell'ambiente
Per eseguire l'upgrade dell'ambiente a una nuova versione o build di Airflow:
Console
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.
Vai alla scheda Configurazione ambiente.
Individua l'elemento Versione immagine e fai clic su Esegui l'upgrade.
Nel menu a discesa Versione immagine, seleziona una versione o una build di Airflow a cui eseguire l'upgrade.
Fai clic su Esegui upgrade.
gcloud
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--airflow-version VERSION
Sostituisci:
ENVIRONMENT_NAMEcon il nome dell'ambiente.LOCATIONcon la regione in cui si trova l'ambiente.VERSIONcon la nuova versione e build di Airflow a cui vuoi eseguire l'upgrade nel formatoairflow-x.y.z-build.t. Puoi anche utilizzare tutti gli alias di versione.
Ad esempio:
gcloud composer environments update
example-environment \
--location us-central1 \
--airflow-version airflow-2.10.5-build.34
API
Crea una richiesta API
environments.patch.In questa richiesta:
Nel parametro
updateMask, specifica la mascheraconfig.softwareConfig.imageVersion.Nel corpo della richiesta, nel campo
imageVersion, specifica una nuova versione a cui vuoi eseguire l'upgrade.
Ad esempio:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion
{
"config": {
"softwareConfig": {
"imageVersion": "composer-3-airflow-2.10.5-build.34"
}
}
}
Terraform
Il campo image_version nel blocco config.software_config
controlla
la versione e la build di Airflow del tuo ambiente. In questo
campo, specifica una nuova versione e build di Airflow.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "VERSION"
}
}
}
Sostituisci:
ENVIRONMENT_NAMEcon il nome dell'ambiente.LOCATIONcon la regione in cui si trova l'ambiente. la nuova versione e build di Airflow a cui vuoi eseguire l'upgrade, nel formatoairflow-x.y.z-build.t. Puoi anche utilizzare tutti gli alias di versione.
Esempio:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "airflow-2.10.5-build.34"
}
}
}