Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
In questa pagina viene descritto come eseguire l'upgrade dell'ambiente a una nuova versione di Airflow.
Informazioni sulle operazioni di upgrade
In Cloud Composer 3, non gestisci la versione di Cloud Composer del tuo ambiente:
- Cloud Composer esegue automaticamente l'upgrade dell'infrastruttura componenti del tuo ambiente. Questi componenti sono correlati le funzionalità di Cloud Composer e non modificano il funzionamento di Airflow o come vengono eseguiti i DAG Airflow.
- Cloud Composer non esegue automaticamente l'upgrade della versione e della compilazione di Airflow, dei componenti Airflow o dei componenti strettamente correlati ai carichi di lavoro Airflow. Non vengono modificati quando l'upgrade dei componenti dell'infrastruttura avviene automaticamente.
- Puoi eseguire l'upgrade manuale a un nuovo Airflow della versione o della build.
Ad esempio, puoi utilizzare la stessa versione e build di Airflow per diversi mesi senza eseguire upgrade e il tuo ambiente riceve gli aggiornamenti, le correzioni e i miglioramenti più recenti di Cloud Composer componenti dell'infrastruttura dell'ambiente di gestione. Quando in seguito decidi di passare nuova versione o build di Airflow, esegui l'upgrade della versione di Airflow nel tuo completamente gestito di Google Cloud.
Informazioni sull'upgrade della versione di Airflow
Il tuo ambiente modifica la versione o la build di Airflow nel seguente modo modo:
Sei tu a controllare la versione (e la build) di Airflow del tuo ambiente. Puoi eseguire l'operazione di upgrade della versione di Airflow quando scegli di passare il tuo ambiente a una versione diversa di Airflow. Ad esempio, questo potrebbe accadere se la versione e la build attuali di Airflow non sono più supportate.
Cloud Composer esegue nuovamente il deployment dei componenti Airflow dell'ambiente usando la versione e la build Airflow specificate.
Cloud Composer applica le modifiche alla configurazione di Airflow, ad esempio i pacchetti PyPI personalizzati o le sostituzioni delle opzioni di configurazione di Airflow, se il tuo ambiente le aveva prima dell'upgrade.
Cloud Composer aggiorna la connessione
airflow_db
di Airflow in modo che indichi il nuovo database Cloud SQL.
La modifica della versione di Airflow non cambia il modo in cui ti connetti alle risorse nel tuo ambiente, come l'URL del bucket dell'ambiente o il server web di Airflow.
Informazioni sulle operazioni di upgrade automatico dell'infrastruttura
Cloud Composer 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 disattivare gli upgrade automatici dell'infrastruttura in Cloud Composer 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 non puoi avviare altre operazioni nell'ambiente (ma puoi comunque eseguire i DAG Airflow).
In alcuni casi, gli upgrade automatici dell'infrastruttura possono riavviare Airflow componenti. Durante questi riavvii, i worker Airflow vengono terminati in modo corretto con un periodo di tolleranza di 24 ore. Se hai attività che richiedono più di 24 ore per essere completate, ti consigliamo di utilizzare gli operatori posticipabili. Un upgrade potrebbe comportare un breve periodo di indisponibilità per i componenti dell'infrastruttura dell'ambiente, ad esempio il monitoraggio dell'ambiente.
Limitazioni delle operazioni di upgrade
Le operazioni di upgrade hanno le seguenti limitazioni:
- Non puoi eseguire il downgrade a una versione o una build precedente di Airflow.
Non puoi eseguire l'upgrade del tuo ambiente se il database Airflow contiene più di 16 GB di dati. Durante un upgrade viene visualizzato un avviso se le dimensioni del database Airflow sono superiori a 16 GB. In questo caso, esegui la manutenzione del database per ridurre la dimensione del database.
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 grandi quantità di file grazie agli effetti di XCom le prestazioni del database Airflow e può portare a errori durante il caricamento snapshot o l'upgrade dell'ambiente. Valuta l'uso di alternative come come Cloud Storage, per trasferire grandi volumi di dati.
Prima di iniziare
Ti consigliamo di creare un nuovo snapshot del per poter ricreare l'ambiente in caso di necessità.
Il tuo account deve avere un ruolo che possa attivare le operazioni di upgrade dell'ambiente. Inoltre, l'account di servizio dell'ambiente deve avere un ruolo con autorizzazioni sufficienti per eseguire le operazioni di upgrade. Per maggiori informazioni per ulteriori informazioni, consulta Controllo dell'accesso.
Verifica che il tuo ambiente sia aggiornato
Cloud Composer visualizza avvisi quando la build Airflow del tuo ambiente si avvicina alla data di fine del supporto. Puoi utilizzare questi avvisi per mantenere sempre il tuo ambiente supportato.
Cloud Composer tiene traccia della versione e della compilazione di Airflow su cui si basa il tuo ambiente. Quando si avvicina la data di fine dell'assistenza, puoi visualizzare un avviso nell'elenco degli ambienti e nella pagina Dettagli ambiente.
Per verificare se il tuo ambiente è aggiornato:
Console
Nella console Google Cloud, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Viene visualizzata la pagina Dettagli dell'ambiente.
Vai alla scheda Configurazione dell'ambiente.
Nel campo Versione immagine, viene visualizzato uno dei seguenti messaggi:
Versione più recente 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 dell'ambiente si sta avvicinando alla fine del periodo di assistenza completa.
Questa versione non è supportata a partire dal giorno… Il tuo ambiente è passato l'intero periodo di assistenza.
gcloud
Questa funzionalità non è disponibile tramite Google Cloud CLI. Puoi invece visualizzare gli upgrade disponibili, che mostrano le nuove versioni disponibili.
API
Questa funzionalità non è disponibile tramite API. Puoi Visualizza gli upgrade disponibili per visualizzare le nuove versioni disponibili.
Visualizza gli upgrade disponibili
Per visualizzare le versioni di Cloud Composer a cui puoi eseguire l'upgrade:
Console
Nella console Google Cloud, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.
Vai alla scheda Configurazione dell'ambiente e fai clic su Esegui l'upgrade della versione immagine.
Per l'elenco delle versioni disponibili, fai clic sull'icona di Cloud Composer Menu a discesa Versione immagine.
gcloud
gcloud composer environments list-upgrades \
ENVIRONMENT_NAME \
--location LOCATION
Sostituisci:
ENVIRONMENT_NAME
con il nome dell'ambiente.LOCATION
con 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 un
Richiesta API imageVersions.list
.
Ad esempio:
// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions
Verificare la presenza di conflitti dei pacchetti PyPI prima dell'upgrade
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 significa che non esistono conflitti nel pacchetto PyPI delle dipendenze tra la versione attuale e quella specificata. Tuttavia, un'operazione di upgrade potrebbe non riuscire per altri motivi.
Console
Per eseguire un controllo di upgrade per il tuo ambiente:
Nella console Google Cloud, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente. Si apre la pagina Dettagli ambiente.
Vai alla scheda Configurazione dell'ambiente, individua sulla voce Image version (Versione immagine) e fai clic su Upgrade (Aggiorna).
Nella finestra di dialogo Upgrade della versione dell'ambiente, in Nell'elenco a discesa Nuova versione, seleziona una versione o una build di Airflow di cui vuoi eseguire l'upgrade.
Nella sezione Compatibilità dei pacchetti PyPI, fai clic su Cerca conflitti.
Attendi il completamento del controllo. In caso di dipendenza dal pacchetto PyPI conflitti, i messaggi di errore visualizzati contengono i dettagli i pacchetti e le versioni dei pacchetti in conflitto.
gcloud
Per eseguire un controllo di 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_NAME
con il nome dell'ambiente.LOCATION
con la regione in cui si trova l'ambiente.VERSION
con La nuova versione e build di Airflow di cui vuoi eseguire l'upgrade nel formatoairflow-x.y.z-build.t
. Puoi anche utilizzare tutte le alias di versione.
Esempio:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--airflow-version airflow-2.9.3-build.3
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.9.3-build.3. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...
Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.CheckUpgradeResponse
buildLogUri: https://console.cloud.google.com/cloud-build/builds/79738aa7-...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at https://console.cloud.google.com/
cloud-build/builds/79738aa7-...
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 la
--async
per effettuare una chiamata asincrona, poi controlla il risultato con
il gcloud composer operations describe
.
API
Costruisci una richiesta API environments.checkUpgrade
.
Specifica la versione dell'immagine nel campo imageVersion
:
{
"imageVersion": "VERSION"
}
Sostituisci VERSION
con la nuova versione di cui vuoi eseguire l'upgrade, nel formato composer-3-airflow-x.y.z-build.t
.
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 dell'ambiente. Si apre la pagina Dettagli ambiente.
Vai alla scheda Configurazione dell'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 di cui vuoi eseguire l'upgrade.
Fai clic su Esegui l'upgrade.
gcloud
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--airflow-version VERSION
Sostituisci:
ENVIRONMENT_NAME
con il nome dell'ambiente.LOCATION
con la regione in cui si trova l'ambiente.VERSION
con 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.9.3-build.3
API
Creare una richiesta API
environments.patch
.In questa richiesta:
Nel parametro
updateMask
, specifica la mascheraconfig.softwareConfig.imageVersion
.Nel corpo della richiesta, nel campo
imageVersion
, specifica un nuovo 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.9.3-build.3"
}
}
}
Terraform
Il campo image_version
nel blocco config.software_config
controlla la versione e la compilazione di Airflow del tuo ambiente. In questo
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_NAME
con il nome dell'ambiente.LOCATION
con la regione in cui si trova l'ambiente. la nuova versione e compilazione di Airflow a cui vuoi eseguire l'upgrade, nel formatoairflow-x.y.z-build.t
. Puoi anche utilizzare tutte le 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.9.3-build.3"
}
}
}