Airflow géré (3e génération) | Airflow géré (2e génération) | Airflow géré (1re génération, version héritée)
Cette page explique comment mettre à niveau votre environnement vers une nouvelle version de Managed Airflow ou d'Airflow.
À propos des opérations de mise à niveau
Vous pouvez mettre à niveau la version de Managed Airflow, la version d'Airflow ou les deux en même temps.
Lorsque vous modifiez la version d'Airflow ou de Managed Airflow utilisée par votre environnement :
Airflow géré redéploie les composants de l'environnement à l'aide de nouvelles versions des images d'Airflow géré.
Managed Airflow applique les modifications de configuration d'Airflow, telles que les packages PyPI personnalisés ou les forçages d'options de configuration d'Airflow, si votre environnement en comportait avant la mise à niveau.
Managed Airflow met à jour la connexion
airflow_dbd'Airflow pour qu'elle pointe vers la nouvelle base de données Cloud SQL.
La mise à niveau ne modifie pas la manière dont vous vous connectez aux ressources de votre environnement, comme l'URL du bucket de votre environnement ou le serveur Web Airflow.
Limites des opérations de mise à niveau
Les opérations de mise à niveau sont soumises aux limites suivantes :
Les versions de Managed Airflow sont déployées progressivement dans toutes les régions compatibles avec Managed Airflow sur plusieurs jours. La dernière version d'une version en cours de déploiement n'est peut-être pas encore disponible dans votre région.
Vous ne pouvez pas revenir à une version antérieure de Managed Airflow ou d'Airflow.
Dans la Google Cloud console, vous ne pouvez effectuer une mise à niveau que vers les dernières versions compatibles de Managed Airflow (2e génération).
Dans Google Cloud CLI, l'API ou Terraform, vous pouvez mettre à niveau un environnement vers les dernières versions compatibles, trois versions précédentes d'Airflow géré (2e génération), la dernière version de correctif de la version mineure précédente et les versions avec un calendrier de mise à niveau étendu. Il n'est pas possible d'effectuer une mise à niveau vers d'autres versions de Managed Airflow (2e génération), même si elles sont toujours compatibles et peuvent être utilisées pour créer un nouvel environnement.
Exemple de choix de mise à niveau pour Google Cloud CLI, l'API et Terraform :
- Dernières versions :
composer-2.11.5-airflow-* - Trois versions précédentes de Managed Airflow (2e génération) :
composer-2.11.4-airflow-*,composer-2.11.3-airflow-*,composer-2.11.2-airflow-*. - Dernier correctif de la version mineure précédente de Managed Airflow (2e génération) :
composer-2.10.2-airflow-* - Versions de Managed Airflow (2e génération) avec un calendrier de mise à niveau étendu :
composer-2.10.2-airflow-*,composer-2.10.1-ariflow-*,composer-2.9.7-airflow-*et autres versions avec un calendrier de mise à niveau étendu.
- Dernières versions :
La version que vous mettez à niveau doit être compatible avec la version Python actuelle de votre environnement.
Les limites de quota de l'API Compute Engine peuvent empêcher les mises à niveau. Dans la Google Cloud console, accédez à la page IAM et administration > Quotas et limites du système et vérifiez que le quota API Compute Engine pour le processeur n'est pas dépassé. Si le seuil de quota est sur le point d'être atteint, demandez une extension de quota avant de procéder à l'opération de mise à niveau.
Il n'est pas possible d'effectuer une mise à niveau sur place vers une version majeure différente de Managed Airflow ou d'Airflow. Vous pouvez transférer manuellement les DAG et la configuration entre les environnements. Pour en savoir plus, consultez :
- Migrer d'Airflow géré (1re génération, version héritée), Airflow 1 vers Airflow géré (2e génération), Airflow 2.
- Migrer d'Airflow géré (1re génération, version héritée), Airflow 2 vers Airflow géré (2e génération), Airflow 2.
- Migrer d'Airflow géré (1re génération, version héritée), Airflow 1 vers Airflow géré (1re génération, version héritée), Airflow 2.
Vous ne pouvez pas mettre à niveau votre environnement si la base de données Airflow contient plus de 16 Go de données. Lors d'une mise à niveau, un avertissement s'affiche si la taille de la base de données Airflow dépasse 16 Go. Dans ce cas, effectuez la maintenance de la base de données pour réduire la taille.
Si vous utilisez le mécanisme XCom pour transférer des fichiers, assurez-vous de l' utiliser conformément aux consignes d'Airflow. Le transfert de fichiers volumineux ou d'un grand nombre de fichiers à l'aide de XCom a un impact sur les performances de la base de données Airflow et peut entraîner des échecs lors du chargement d'instantanés ou de la mise à niveau de votre environnement. Envisagez d'utiliser des alternatives telles que Cloud Storage pour transférer de grands volumes de données.
Avant de commencer
Nous vous recommandons de créer un instantané de l' environnement pour pouvoir le recréer si nécessaire.
Votre compte doit disposer d'un rôle permettant de déclencher des opérations de mise à niveau d'environnement. De plus, le compte de service de l'environnement doit disposer d'un rôle doté d'autorisations suffisantes pour effectuer des opérations de mise à niveau. Pour plus d'informations, consultez la section Contrôle des accès.
Vérifier que votre environnement est à jour
Airflow géré affiche des avertissements lorsque l'image de votre environnement approche de la date de fin de prise en charge complète. Vous pouvez utiliser ces avertissements pour toujours maintenir votre environnement compatible.
Managed Airflow suit la version d'image de Managed Airflow sur laquelle votre environnement est basé. Lorsque la date de fin de prise en charge approche, un avertissement apparaît dans la liste des environnements et sur la page Détails de l'environnement.
Pour vérifier si votre environnement est à jour, procédez comme suit :
Console
Dans la Google Cloud console, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Configuration de l'environnement.
Dans le champ Version de l'image, l'un des messages suivants s'affiche :
Dernière version disponible Votre image d'environnement est entièrement compatible.
Nouvelle version disponible Votre image d'environnement est entièrement compatible et vous pouvez la mettre à niveau vers une version ultérieure.
La prise en charge de cette version de l'image prendra fin dans… Votre image d'environnement approche de la fin de la période de prise en charge pcomplète.
Cette version n'est plus compatible depuis le… Votre environnement a dépassé la période d'assistance complète.
gcloud
Cette fonctionnalité n'est pas disponible via Google Cloud CLI. Vous pouvez afficher les mises à niveau suggérées plutôt, qui indiquent les nouvelles versions disponibles.
API
Cette fonctionnalité n'est pas disponible via l'API. Vous pouvez afficher les mises à niveau suggérées plutôt, qui indiquent les nouvelles versions disponibles.
Afficher les mises à niveau suggérées
Managed Airflow fournit une liste des versions de Managed Airflow vers lesquelles vous pouvez mettre à niveau votre environnement.
Pour afficher les versions de Managed Airflow suggérées pour une mise à niveau :
Console
Dans la Google Cloud console, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Configuration de l'environnement , puis cliquez sur Mettre à niveau la version d'image.
Pour obtenir la liste des versions suggérées, cliquez sur le menu déroulant Version de l'image d'Airflow géré.
gcloud
gcloud composer environments list-upgrades \
ENVIRONMENT_NAME \
--location LOCATION
Remplacez :
ENVIRONMENT_NAMEpar le nom de l'environnement.LOCATIONpar la région dans laquelle se trouve l'environnement.
Exemple :
gcloud composer environments list-upgrades example-environment \
--location us-central1
API
Vous pouvez afficher les versions disponibles pour un emplacement. Pour ce faire, créez une requête API
imageVersions.list.
Exemple :
// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions
Rechercher des conflits de packages PyPI
Vous pouvez vérifier si les packages PyPI installés dans votre environnement présentent des conflits avec les packages préinstallés dans la nouvelle image d'Airflow géré.
Une vérification réussie signifie qu'il n'y a pas de conflits dans les dépendances des packages PyPI entre la version actuelle et la version spécifiée. Toutefois, une opération de mise à niveau peut échouer pour d'autres raisons.
Console
Pour exécuter une vérification des mises à niveau de votre environnement, procédez comme suit :
Dans la Google Cloud console, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Configuration de l'environnement, recherchez l'entrée Version de l'image, puis cliquez sur Mettre à niveau.
Dans la boîte de dialogue Mise à niveau des versions d'environnement, dans la liste déroulante Nouvelle version, sélectionnez une version de Managed Airflow vers laquelle vous souhaitez effectuer la mise à niveau.
Dans la section Compatibilité des packages PyPI, cliquez sur Rechercher des conflits.
Attendez la fin de la vérification. En cas de conflits de dépendance du package PyPI, les messages d'erreur affichés contiennent des détails sur les packages en conflit et les versions de package.
gcloud
Pour exécuter une vérification de la mise à niveau de votre environnement, exécutez la
environments check-upgrade
commande avec la
version d'image d'Airflow géré
vers laquelle vous souhaitez effectuer la mise à niveau.
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version VERSION
Remplacez :
ENVIRONMENT_NAMEpar le nom de l'environnement.LOCATIONpar la région dans laquelle se trouve l'environnement.VERSIONavec la nouvelle version d'image de Managed Airflow vers laquelle vous souhaitez effectuer la mise à niveau, au formatcomposer-a.b.c-airflow-x.y.z. Vous pouvez utiliser tous les alias de version.
Exemple :
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15
Exemple de résultat :
Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-1.20.12-airflow-1.10.15. 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.
Vous pouvez également exécuter une vérification de mise à niveau de manière asynchrone. Utilisez l'argument --async pour effectuer un appel asynchrone, puis vérifiez le résultat à l'aide de la commande gcloud composer operations describe.
API
Créez une environments.checkUpgrade API
requête.
Spécifiez la version de l'image dans le champ imageVersion :
{
"imageVersion": "VERSION"
}
Remplacez VERSION par la nouvelle version vers laquelle vous souhaitez effectuer la mise à niveau, au format
composer-a.b.c-airflow-x.y.z.
Mettre à niveau votre environnement
Pour mettre à niveau votre environnement vers une version ultérieure de Managed Airflow ou d'Airflow :
Console
Dans la Google Cloud console, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Configuration de l'environnement.
Recherchez l'élément Version de l'image , puis cliquez sur Mettre à niveau.
Dans le menu déroulant Version de l'image, sélectionnez une version de Managed Airflow vers laquelle vous souhaitez effectuer la mise à niveau.
Cliquez sur Mettre à niveau.
gcloud
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version VERSION
Remplacez :
ENVIRONMENT_NAMEpar le nom de l'environnement.LOCATIONpar la région dans laquelle se trouve l'environnement.VERSIONavec la nouvelle version d'image de Managed Airflow vers laquelle vous souhaitez effectuer la mise à niveau, au formatcomposer-a.b.c-airflow-x.y.z. Vous pouvez également utiliser tous les alias de version.
Exemple :
gcloud composer environments update
example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15
API
Créez une requête API
environments.patch.Dans cette requête :
Dans le paramètre
updateMask, spécifiez le masqueconfig.softwareConfig.imageVersion.Dans le corps de la requête, dans le champ
imageVersion, spécifiez une nouvelle version vers laquelle vous souhaitez effectuer la mise à niveau.
Exemple :
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion
{
"config": {
"softwareConfig": {
"imageVersion": "composer-1.20.12-airflow-1.10.15"
}
}
}
Terraform
Le champ image_version du bloc config.software_config
contrôle
l'image d'Airflow géré de votre environnement. Dans ce champ, spécifiez une nouvelle image d'Airflow géré.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "VERSION"
}
}
}
Remplacez :
ENVIRONMENT_NAMEpar le nom de l'environnement.LOCATIONpar la région dans laquelle se trouve l'environnement. la nouvelle version d'image d'Airflow géré vers laquelle vous souhaitez effectuer la mise à niveau, aucomposer-a.b.c-airflow-x.y.zformat. Vous pouvez également utiliser tous les alias de version.
Exemple :
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-1.20.12-airflow-1.10.15"
}
}
}