Mettre à niveau des environnements

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Cette page explique comment mettre à niveau votre environnement vers un nouveau Airflow version.

À propos des opérations de mise à niveau

Dans Cloud Composer 3, vous ne gérez pas la version de Cloud Composer. de votre environnement:

  • Cloud Composer met automatiquement à niveau l'infrastructure composants de votre environnement. Ces composants sont liés à les fonctionnalités Cloud Composer et ne modifie pas le fonctionnement d'Airflow ; ou la façon dont vos DAG Airflow sont exécutés.
  • Cloud Composer ne met pas automatiquement à niveau la version d'Airflow composants Airflow, ou des composants étroitement liés à Airflow, charges de travail. Ils ne sont pas modifiés lors de la mise à niveau des composants d'infrastructure automatiquement.
  • Vous pouvez effectuer une mise à niveau manuelle vers la nouvelle version d'Airflow. version ou build.

Par exemple, vous pouvez utiliser la même version et le même build d'Airflow pour plusieurs mois, sans effectuer de mise à niveau, et votre environnement continue de recevoir Dernières mises à jour, corrections et améliorations de Cloud Composer composants d'infrastructure de l'environnement. Plus tard, vous décidez de passer à un nouvelle version ou build d'Airflow, vous mettez à niveau la version d'Airflow dans votre environnement.

À propos de la mise à niveau de la version d'Airflow

Votre environnement modifie la version ou le build d'Airflow dans les méthode:

  • Vous contrôlez la version (et la compilation) Airflow de votre environnement. Vous pouvez d'effectuer la mise à niveau de la version d'Airflow lorsque vous choisissez votre environnement vers une autre version d'Airflow. Par exemple, cela pourrait se produit si la version et le build d'Airflow actuels sont ne sont plus compatibles.

  • Cloud Composer redéploie les composants Airflow de votre environnement à l'aide de la version et du build Airflow spécifiés.

  • Cloud Composer applique les modifications de configuration Airflow, telles que packages PyPI personnalisés ou les remplacements d'options de configuration Airflow, si votre ne les possédaient pas avant la mise à niveau.

  • Cloud Composer met à jour la connexion Airflow airflow_db vers point vers la nouvelle base de données Cloud SQL.

La modification de la version d'Airflow n'a aucune incidence sur la façon dont vous vous connectez aux ressources dans votre environnement, comme l'URL du bucket de votre environnement, ou Serveur Web Airflow.

À propos des opérations de mise à niveau automatique de l'infrastructure

Cloud Composer s'exécute régulièrement opérations de mise à niveau automatique de l'infrastructure:

  • Les opérations de mise à niveau automatique de l'infrastructure s'exécutent régulièrement intervalles de maintenance spécifiés pour l'environnement.

  • Il n'est pas possible de désactiver les mises à niveau automatiques de l'infrastructure Cloud Composer 3. Vous pouvez contrôler les périodes pendant lesquelles les mises à niveau automatiques en spécifiant des intervalles de maintenance personnalisés pour votre environnement.

  • Cette opération est visible dans la console Google Cloud les journaux de l'environnement, comme toute autre opération de longue durée. Alors que le est en cours d'exécution, vous ne pouvez pas en démarrer d'autres (mais vous pouvez toujours exécuter les DAG Airflow).

  • Les mises à niveau automatiques de l'infrastructure n'interrompent pas Airflow ou des tâches Airflow déjà en cours d'exécution. Une migration peut se produire en une courte période d'indisponibilité de l'infrastructure de l'environnement des composants, comme la surveillance de l'environnement.

Limites des opérations de mise à niveau

Les opérations de mise à niveau présentent les limites suivantes:

  • Vous ne pouvez pas revenir à une version ou à un build antérieur d'Airflow.

  • Vous ne pouvez pas mettre à niveau votre environnement si la base de données Airflow contient de plus de 16 Go de données. Lors d'une mise à niveau, un avertissement indiqué 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 la taille de la base de données.

Avant de commencer

  • Nous vous recommandons de créer un autre instantané de la pour recréer l'environnement en cas de besoin.

  • Votre compte doit disposer d'un rôle pouvant déclencher la mise à niveau de l'environnement operations. De plus, le compte de service de l'environnement doit disposer dispose des autorisations nécessaires pour effectuer des opérations de mise à niveau. Pour plus plus d'informations, consultez la section Contrôle des accès.

Vérifier que votre environnement est à jour

Cloud Composer affiche des avertissements la version Airflow de votre environnement arrive à expiration. Vous pouvez utiliser ces avertissements pour protéger en permanence votre environnement compatible.

Un message d&#39;abandon s&#39;affiche sur la page &quot;Détails de l&#39;environnement&quot;. <ph type="x-smartling-placeholder">
</ph> Figure 1 : Un message d'abandon s'affiche dans l'environnement page d'informations

Cloud Composer assure le suivi Version et build d'Airflow sur lequel repose votre environnement. Lorsqu'elle approche de end of support date, un avertissement s'affiche dans la liste des environnements et sur Page Détails de l'environnement.

Pour vérifier si votre environnement est à jour:

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.

gcloud

Cette fonctionnalité n'est pas disponible via la Google Cloud CLI. Vous pouvez À la place, affichez les mises à niveau disponibles, qui affiche les nouvelles versions. disponibles.

API

Cette fonctionnalité n'est pas disponible via l'API. Vous pouvez À la place, affichez les mises à niveau disponibles, qui affiche les nouvelles versions. disponibles.

Afficher les mises à niveau 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, puis cliquez sur Mettre à niveau la version de l'image.

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

gcloud

gcloud 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 composer environments list-upgrades example-environment \
  --location us-central1

API

Vous pouvez afficher les versions disponibles pour un établissement. Pour ce faire, créez un Requête API imageVersions.list.

Exemple :

// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions

Recherchez les conflits de packages PyPI avant la mise à niveau

Vous pouvez vérifier si les packages PyPI installés dans votre environnement des conflits avec les packages préinstallés Version ou build Airflow.

Une vérification réussie signifie qu'il n'y a pas de conflits dans le package PyPI dépendances entre la version actuelle et la version spécifiée. Toutefois, une l'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 :

  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 de la version de l'environnement, dans Dans la liste déroulante Nouvelle version, sélectionnez une version ou un build d'Airflow que vous souhaitez mettre à 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 des mises à niveau pour votre environnement, exécutez la environments check-upgrade avec la commande Version ou build Airflow. que vous souhaitez mettre à niveau.

gcloud composer environments check-upgrade \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --airflow-version VERSION

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • VERSION avec la nouvelle version et le nouveau build Airflow que vous souhaitez mettre à niveau ; au format airflow-x.y.z-build.t. Vous pouvez aussi utiliser alias de version.

Exemple :

gcloud composer environments check-upgrade example-environment \
  --location us-central1 \
  --airflow-version airflow-2.7.3-build.8

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-3-airflow-2.7.3-build.8. 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.

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

Remplacez VERSION par la nouvelle version vers laquelle vous souhaitez effectuer la mise à niveau, dans le format composer-3-airflow-x.y.z-build.t.

Mettre à niveau votre environnement

.

Pour mettre à niveau votre environnement vers une nouvelle version ou build 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 ou un build d'Airflow que vous souhaitez mettre à niveau.

  6. Cliquez sur Mettre à jour.

gcloud

gcloud composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --airflow-version VERSION

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • VERSION avec la nouvelle version et le nouveau build Airflow que vous souhaitez mettre à niveau ; au format airflow-x.y.z-build.t. Vous pouvez aussi utiliser alias de version.

Exemple :

gcloud composer environments update
  example-environment \
  --location us-central1 \
  --airflow-version airflow-2.7.3-build.8

API

  1. Rédigez une requête API environments.patch.

  2. Dans cette requête :

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

    2. Dans le corps de la requête, dans le champ imageVersion, spécifiez un nouveau 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-3-airflow-2.7.3-build.8"
      }
    }
  }

Terraform

Le champ image_version dans le bloc config.software_config commandes la version et le build d'Airflow de votre environnement. Dans ce , spécifiez une nouvelle version et un nouveau build Airflow.

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

  config {
    software_config {
      image_version = "VERSION"
    }
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement. la nouvelle version et le nouveau build d'Airflow que vous souhaitez mettre à niveau au format airflow-x.y.z-build.t. Vous pouvez aussi utiliser alias de version.

Exemple :

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "airflow-2.7.3-build.8"
    }
  }
}

Étape suivante