Mettre à niveau des environnements

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment mettre à niveau votre environnement vers une nouvelle version Cloud Composer ou Airflow.

À propos des opérations de mise à niveau

Lorsque vous modifiez la version d'Airflow ou de Cloud Composer utilisée par votre environnement, celui-ci est mis à niveau.

La mise à niveau ne modifie pas la façon dont vous vous connectez aux ressources de votre environnement, telles que l'URL du bucket de votre environnement ou le serveur Web Airflow.

Lors d'une mise à niveau, Cloud Composer:

  1. redéploie les composants de votre environnement à l'aide de nouvelles versions des images Cloud Composer.
  2. Applique les modifications de configuration Airflow, telles que les packages PyPI personnalisés ou les remplacements d'options de configuration Airflow, si votre environnement les avait avant la mise à niveau.
  3. Met à jour la connexion Airflow airflow_db pour qu'elle pointe vers la nouvelle base de données Cloud SQL.

Avant de commencer

  • La mise à niveau est en version preview. Utilisez cette fonctionnalité avec prudence dans les environnements de production.

  • Vous ne pouvez pas revenir à une version antérieure de Cloud Composer ou Airflow.

  • Nous vous recommandons de créer un instantané de l'environnement afin de pouvoir le recréer si nécessaire.

  • Vous pouvez mettre à niveau la version de Cloud Composer, la version d'Airflow ou les deux en même temps.

  • Vous pouvez effectuer une mise à niveau depuis n'importe quelle version de Cloud Composer uniquement vers la dernière version, les trois versions précédentes de Cloud Composer et vers des versions avec un calendrier de mise à niveau étendu.

  • Pour passer à des versions autres que la dernière version de Cloud Composer, utilisez Google Cloud CLI, l'API ou Terraform. Dans la console Google Cloud, vous ne pouvez effectuer une mise à niveau que vers la dernière version.

  • Il n'est pas possible de passer à une autre version majeure de Cloud Composer ou d'Airflow sur place. Vous pouvez transférer manuellement les DAG et la configuration entre les environnements. Pour en savoir plus, consultez :

  • Vous devez 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.

  • Pour obtenir la liste des packages PyPI d'une version que vous souhaitez mettre à niveau, consultez la liste des versions Cloud Composer.

  • 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 est supérieure à 16 Go. Dans ce cas, effectuez la maintenance de la base de données afin de réduire sa taille.

  • La version d'image que vous mettez à niveau doit être compatible avec la version Python actuelle de votre environnement.

  • Assurez-vous que vos DAG sont compatibles avec la version d'Airflow et avec tous les packages du fournisseur (y compris le package du fournisseur Airflow pour les services Google Cloud et Google). Vous pouvez vérifier les versions des packages du fournisseur inclus dans une version Cloud Composer spécifique.

  • Dans la console Google Cloud, accédez à la page IAM et administration > Quotas et limites du système et vérifiez si le quota Compute Engine Engine API pour le processeur n'est pas dépassé. Si vous approchez du seuil de quota, demandez une extension de quota avant de poursuivre l'opération de mise à niveau.

  • Les mises à niveau sont possibles vers les trois dernières versions publiées de Cloud Composer ou vers l'une des versions "prise en charge étendue des mises à niveau", comme décrit dans les versions Cloud Composer.

Vérifier que votre environnement est à jour

Cloud Composer affiche des avertissements lorsque l'image de votre environnement approche de la date de fin d'assistance. Vous pouvez utiliser ces avertissements pour toujours garder vos environnements pendant la période de compatibilité complète.

Un message d'abandon s'affiche sur la page "Détails de l'environnement"
Figure 1. Un message d'abandon s'affiche sur la page "Détails de l'environnement"

Cloud Composer effectue le suivi de la version d'image Cloud Composer sur laquelle repose votre environnement. Lorsque l'image approche de la date de fin de prise en charge, un avertissement apparaît dans la liste des environnements et sur la page Détails de l'environnement.

Pour vérifier si votre image d'environnement est à jour, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. 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 de prise en charge complète.

Afficher les licences disponibles

Pour afficher les versions Cloud Composer que vous pouvez mettre à niveau, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement et cliquez sur Mettre à niveau la version d'image.

  4. Pour obtenir la liste des versions disponibles, cliquez sur le menu déroulant Version de l'image de Cloud Composer.

gcloud

gcloud beta composer environments list-upgrades \
  ENVIRONMENT_NAME \
  --location LOCATION

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.

Exemple :

gcloud beta composer environments list-upgrades example-environment \
  --location us-central1

API

Vous pouvez consulter les versions disponibles pour un emplacement donné. 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

Vérifier les conflits de packages PyPI avant la mise à niveau

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 Cloud Composer.

Une vérification réussie signifie qu'il n'y a pas de conflit de dépendance de package PyPI entre la version actuelle et la version spécifiée. Notez qu'une opération de mise à niveau peut toujours échouer pour d'autres raisons.

Console

Pour exécuter une vérification des mises à niveau de votre environnement, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement, recherchez l'entrée Version de l'image, puis cliquez sur Mettre à niveau.

  4. Dans la boîte de dialogue Mise à niveau des versions d'environnement, dans la liste déroulante Nouvelle version, sélectionnez une version Cloud Composer vers laquelle vous souhaitez effectuer la mise à niveau.

  5. Dans la section Compatibilité des packages PyPI, cliquez sur Rechercher des conflits.

  6. 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 effectuer une vérification de mise à niveau pour votre environnement, exécutez la commande environments check-upgrade avec la version de l'image Cloud Composer vers laquelle vous souhaitez effectuer la mise à niveau.

gcloud beta composer environments check-upgrade \
    ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version COMPOSER_IMAGE

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • COMPOSER_IMAGE par la nouvelle version de l'image Cloud Composer vers laquelle vous souhaitez effectuer la mise à niveau, au format composer-a.b.c-airflow-x.y.z.

Exemple :

gcloud beta 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.v1beta1.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.

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

Rédigez une requête d'API environments.checkUpgrade.

Spécifiez la version de l'image dans le champ imageVersion :

{
  "imageVersion": "COMPOSER_IMAGE"
}

Remplacez COMPOSER_IMAGE par la nouvelle version de l'image Cloud Composer que vous souhaitez mettre à 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 Cloud Composer ou d'Airflow:

Console

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Recherchez l'élément Version de l'image, puis cliquez sur Mettre à niveau.

  5. Dans le menu déroulant Version de l'image, sélectionnez une version.

  6. Cliquez sur Mettre à jour.

gcloud

gcloud beta composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version COMPOSER_IMAGE

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • COMPOSER_IMAGE par la nouvelle version de l'image Cloud Composer vers laquelle vous souhaitez effectuer la mise à niveau, au format composer-a.b.c-airflow-x.y.z.

Exemple :

gcloud beta composer environments update
  example-environment \
  --location us-central1 \
  --image-version composer-1.20.12-airflow-1.10.15

API

  1. Envoyez une requête d'API environments.patch bêta.

  2. Dans cette requête :

    1. Dans le paramètre updateMask, spécifiez le masque config.softwareConfig.imageVersion.

    2. Dans le corps de la requête, dans le champ imageVersion, il s'agit de la nouvelle version de l'image Cloud Composer vers laquelle vous souhaitez effectuer la mise à niveau, au format composer-a.b.c-airflow-x.y.z.

Exemple :

// PATCH https://composer.googleapis.com/v1beta1/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 Cloud Composer de votre environnement. Dans ce champ, spécifiez une nouvelle image Cloud Composer.

  resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "COMPOSER_IMAGE"
    }
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • COMPOSER_IMAGE par la nouvelle version de l'image Cloud Composer vers laquelle vous souhaitez effectuer la mise à niveau, au format composer-a.b.c-airflow-x.y.z.

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"
    }
  }
}

Étapes suivantes