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

Cloud Composer 1 | Cloud Composer 2

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 Compose > Compilations > Image du nœud de calcul et 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 de 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 autre version du package préinstallé. Vous pouvez rechercher les conflits potentiels de packages PyPI avant de mettre à niveau votre environnement vers une version ultérieure de Cloud Composer.

  • Utilisez PythonVirtualenvOperator pour isoler les extraits de code nécessitant des packages en conflit.

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

Si votre environnement utilise un fichier pip.conf personnalisé, vous risquez de rencontrer un problème lorsqu'aucun nouveau package PyPI ne peut être installé dans votre environnement. Dans les journaux Cloud Build liés à l'erreur d'installation du package, le message d'avertissement suivant peut s'afficher:

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 package par défaut sur http://pypi.org/simple. Par exemple, si votre fichier pip.conf ne permet d'installer que des 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 packages par défaut n'est pas disponible.

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

Étapes suivantes