Résoudre les problèmes d'installation du package PyPI

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Cette page explique comment résoudre les conflits de dépendance lors de l'installation de packages PyPI personnalisés.

Le problème le plus courant que vous pouvez rencontrer avec les packages PyPI dans Cloud Composer est le conflit de dépendance.

Lorsque vous spécifiez un nouveau package PyPI personnalisé à installer, ce package ou sa version peuvent provoquer des conflits de dépendance avec d'autres packages PyPI personnalisés ou des packages préinstallés dans votre environnement. Dans ce cas, l'opération de mise à jour de l'environnement échoue et renvoie une erreur.

Erreurs Cloud Build et de compilation dans le cluster

Si un problème survient au niveau des packages, vous recevez le message d'erreur de deux manières, selon la manière dont votre environnement est déployé :

  • Cloud Build. Un message d'erreur et un lien vers le journal Cloud Build Exemple :

    UPDATE operation on this environment failed 25 minutes ago with the
    following error message:
    Failed to install PyPI packages.  Check the Cloud Build log at ...
    
  • Compilations au sein du cluster. Message d'erreur et emplacement des journaux de compilation. Exemple :

    UPDATE operation on this environment failed 17 minutes ago with the
    following error message:
    Failed to install PyPI packages.  Check the in-cluster build logs for
    details. They can be found in the Environment logs under the build-log-*
    log name.
    

Consulter le message d'erreur détaillé

Lorsqu'une installation de package échoue, pip rapporte un message d'erreur détaillé. Ce message d'erreur s'affiche dans les journaux de compilation.

Recherchez l'erreur pip dans les journaux Cloud Build

Vous pouvez suivre le lien dans le message d'erreur Cloud Build ou accéder aux journaux de compilation :

  1. Accédez aux journaux de compilation :

    1. Dans la console Google Cloud, accédez à la page Historique de compilation.

      Accéder à l'historique de compilation.

    2. Sélectionnez la compilation ayant échoué pour afficher ses journaux.

  2. Dans le journal de compilation, recherchez le message d'erreur de pip. Exemple :

    ERROR: apache-airflow-backport-providers-google 2021.2.5 has requirement
    google-cloud-logging<3.0.0,>=2.1.1, but you'll have google-cloud-logging
    1.15.0 which is incompatible.
    

Rechercher l'erreur pip dans les journaux de compilation du cluster

  1. Accédez aux journaux de compilation :

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

      Accéder à la page Environnements

    2. Sélectionnez votre environnement.

    3. Ouvrez l'onglet Journaux.

    4. Sélectionnez Tous les journaux > Journaux Composer > Builds > Travailleurs et Image du programmeur.

    5. Dans la liste déroulante Gravité, sélectionnez Info.

  2. Dans les journaux affichés :

    1. Recherchez le message d'erreur installer.sh. Exemple :

      The command '/bin/sh -c bash installer.sh $COMPOSER_PYTHON_VERSION
      fail' returned a non-zero code: 1
      
    2. Les messages d'information précédents comportent l'erreur pip détaillée. Exemple :

      apache-airflow-backport-providers-google 2021.2.5 has requirement
      google-cloud-logging<3.0.0,>=2.1.1, but you have
      google-cloud-logging 1.15.0.
      

Conflits avec les packages PyPI préinstallés

Des conflits de packages peuvent se produire entre les packages personnalisés PyPI que vous installez et les packages préinstallés.

Vous pouvez consulter la liste complète des packages préinstallés pour votre version de Cloud Composer sur la page Versions Cloud Composer.

Pour résoudre ce problème, vous pouvez effectuer les opérations suivantes :

  • Installez une autre version du package PyPI personnalisé.

  • Installez une autre version du package préinstallé. Pour ce faire, installez un package PyPI personnalisé avec le nom du package préinstallé et spécifiez la version requise. Nous vous déconseillons de revenir à une version antérieure des packages préinstallés.

  • Vérifiez si les versions Cloud Composer ultérieures utilisent une version différente du package préinstallé. Vous pouvez vérifier les conflits potentiels de packages PyPI avant de mettre à niveau votre environnement vers une version ultérieure de Cloud Composer.

  • Utiliser PythonVirtualenvOperator pour isoler les extraits de code qui nécessitent des packages conflictuels.

Serveur de métadonnées indisponible lors de l'installation de packages PyPI

Si votre environnement utilise un fichier pip.conf personnalisé, vous pouvez rencontrer un problème lorsque vous ne pouvez pas installer de nouveaux packages PyPI dans votre environnement. Dans les journaux Cloud Build associés au package d'installation, le message d'avertissement suivant s'affiche:

WARNING: Compute Engine Metadata server unavailable on attempt 3 of 3. Reason:
timed out
WARNING: Authentication failed using Compute Engine authentication due to
unavailable metadata server.

Ce problème est causé par un fichier pip.conf qui n'autorise pas l'accès à l'index de paquets par défaut à http://pypi.org/simple. Par exemple, si votre fichier pip.conf n'autorise que l'installation de packages à partir d'un dépôt Artifact Registry personnalisé en raison du paramètre index-url redéfini, l'installation de packages à partir de l'index de paquets par défaut n'est pas disponible.

Pour résoudre ce problème, assurez-vous que l'index du package http://pypi.org/simple est ajouté à votre fichier pip.conf. Par exemple, si votre indice de package principal est défini dans le paramètre index-url, ajoutez l'indice http://pypi.org/simple dans le paramètre extra-index-url.

Étape suivante