Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Auf dieser Seite wird beschrieben, wie Sie Abhängigkeitskonflikte bei der Installation benutzerdefinierter PyPI-Pakete beheben können.
Das häufigste Problem bei PyPI-Paketen, die in Cloud Composer auftreten können, sind Abhängigkeitskonflikte.
Wenn Sie ein neues benutzerdefiniertes PyPI-Paket angeben, das installiert werden soll, können diese Pakete oder deren Version Abhängigkeiten in Konflikt mit anderen benutzerdefinierten PyPI-Paketen oder vorinstallierten Paketen in Ihrer Umgebung verursachen. In diesem Fall schlägt die Aktualisierung der Umgebung mit einem Fehler fehl.
Cloud Build-Fehler und Build-Fehler im Cluster
Wenn Probleme mit Paketen auftreten, erhalten Sie je nach Art der Bereitstellung Ihrer Umgebung die Fehlermeldungen auf zwei Arten:
Cloud Build Eine Fehlermeldung und ein Link zum Cloud Build-Log. Beispiel:
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 ...
In-Cluster-Builds: Eine Fehlermeldung und der Speicherort von Build-Logs. Beispiel:
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.
Detaillierte Fehlermeldung ansehen
Wenn eine Paketinstallation fehlschlägt, meldet pip
die detaillierte Fehlermeldung.
Diese Fehlermeldung finden Sie in den Build-Logs.
Den pip
-Fehler in Cloud Build-Logs suchen
Sie können auf den Link in der Cloud Build-Fehlermeldung klicken oder Build-Logs suchen:
Suchen Sie Build-Logs:
Rufen Sie in der Google Cloud Console die Seite Build-Verlauf auf.
Wählen Sie den fehlgeschlagenen Build aus, um dessen Logs aufzurufen.
Suchen Sie im Build-Log nach der Fehlermeldung von
pip
. Beispiel: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.
Den pip
-Fehler in Build-Logs im Cluster suchen
Suchen Sie Build-Logs:
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Wählen Sie Ihre Umgebung aus.
Öffnen Sie den Tab Logs.
Wählen Sie Alle Logs > Composer-Logs > Builds > Worker- und Scheduler-Image aus.
Wählen Sie in der Drop-down-Liste Schweregrad die Option Info aus.
In den angezeigten Logs:
Suchen Sie nach der Fehlermeldung
installer.sh
. Beispiel:The command '/bin/sh -c bash installer.sh $COMPOSER_PYTHON_VERSION fail' returned a non-zero code: 1
Die Infonachrichten davor haben den detaillierten
pip
-Fehler. Beispiel: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.
Konflikte mit vorinstallierten PyPI-Paketen
Zwischen den von Ihnen installierten benutzerdefinierten PyPI-Paketen und den vorinstallierten Paketen treten einige Paketkonflikte auf.
Sie können die vollständige Liste der vorinstallierten Pakete für Ihre Version von Cloud Composer auf der Seite Cloud Composer-Versionen
So können Sie lösen dieses Problem:
Installieren Sie eine andere Version des benutzerdefinierten PyPI-Pakets.
Installieren Sie eine andere Version des vorinstallierten Pakets. Installieren Sie dazu ein benutzerdefiniertes PyPI-Paket mit dem Namen des vorinstallierten Pakets und geben Sie die erforderliche Version an. Wir empfehlen, kein Downgrade vorinstallierter Pakete durchzuführen.
Prüfen Sie, ob spätere Cloud Composer-Versionen eine andere Version des vorinstallierten Pakets. Sie können vor dem Upgrade Ihrer Umgebung auf eine neuere Cloud Composer-Version nach potenziellen PyPI-Paketkonflikten suchen.
Mit PythonVirtualenvOperator um Code-Snippets zu isolieren, die in Konflikt stehende Pakete erfordern.
Metadatenserver nicht verfügbar, wenn PyPI-Pakete installiert werden
Wenn in Ihrer Umgebung eine benutzerdefinierte pip.conf
-Datei verwendet wird, kann es zu einem Problem kommen, wenn keine neuen PyPI-Pakete in Ihrer Umgebung installiert werden können. In Cloud Build-Logs, die sich auf das Paket beziehen
erhalten Sie die folgende Warnmeldung:
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.
Dieses Problem wird durch eine pip.conf
-Datei verursacht, die keinen Zugriff auf den Standardpaketindex unter http://pypi.org/simple
zulässt. Wenn Ihre Datei pip.conf
beispielsweise nur
ermöglicht die Installation von Paketen aus einem benutzerdefinierten Artifact Registry-Repository, da
den neu definierten index-url
-Parameter, mit dem Pakete aus dem
Standardpaketindex ist nicht verfügbar.
Achten Sie darauf, dass der http://pypi.org/simple
-Paketindex
wird zu Ihrer pip.conf
-Datei hinzugefügt. Wenn der primäre Paketindex beispielsweise im Parameter index-url
definiert ist, fügen Sie den Index http://pypi.org/simple
in den Parameter extra-index-url
ein.