Cloud Composer 1 | Cloud Composer 2
Questa pagina spiega come risolvere i conflitti di dipendenze durante l'installazione di pacchetti PyPI personalizzati.
Il problema più comune dei pacchetti PyPI che potresti riscontrare in Cloud Composer sono i conflitti di dipendenze.
Quando specifichi un nuovo pacchetto PyPI personalizzato da installare, il pacchetto o la sua versione potrebbero causare conflitti di dipendenza con altri pacchetti PyPI personalizzati o con pacchetti preinstallati nel tuo ambiente. In questo caso, l'operazione di aggiornamento dell'ambiente ha esito negativo e restituisce un errore.
Errori di build in Cloud Build e nel cluster
Se si verifica un problema con i pacchetti, puoi visualizzare il relativo messaggio di errore in due modi, a seconda del modo in cui viene eseguito il deployment dell'ambiente:
Cloud Build. Un messaggio di errore e un link al log di Cloud Build. Ad esempio:
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 ...
Build nel cluster. Un messaggio di errore e la posizione dei log di build. Ad esempio:
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.
Visualizza il messaggio di errore dettagliato
Quando l'installazione di un pacchetto non va a buon fine, pip
segnala il messaggio di errore dettagliato.
Puoi trovare questo messaggio di errore nei log di build.
Individua l'errore pip
nei log di Cloud Build
Puoi seguire il link nel messaggio di errore di Cloud Build o individuare i log di build:
Individua i log di build:
Nella console Google Cloud, vai alla pagina Cronologia build.
Seleziona la build non riuscita per visualizzarne i log.
Individua il messaggio di errore di
pip
nel log di build. Ad esempio: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.
Individua l'errore pip
nei log di build nel cluster
Individua i log di build:
Nella console Google Cloud, vai alla pagina Ambienti.
Seleziona il tuo ambiente.
Apri la scheda Log.
Seleziona Tutti i log > Log di Composer > Builds > Immagine worker e scheduler.
Nell'elenco a discesa Gravità, seleziona Informazioni.
Nei log visualizzati:
Individua il messaggio di errore
installer.sh
. Ad esempio:The command '/bin/sh -c bash installer.sh $COMPOSER_PYTHON_VERSION fail' returned a non-zero code: 1
I messaggi informativi precedenti presentano l'errore
pip
dettagliato. Ad esempio: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.
Conflitti con i pacchetti PyPI preinstallati
Alcuni conflitti di pacchetto si verificano tra i pacchetti PyPI personalizzati installati e i pacchetti preinstallati.
Puoi visualizzare l'elenco completo dei pacchetti preinstallati per la tua versione di Cloud Composer nella pagina delle versioni di Cloud Composer.
Per risolvere questo problema, puoi:
Installa una versione diversa del pacchetto PyPI personalizzato.
Installa una versione diversa del pacchetto preinstallato. Per farlo, installa un pacchetto PyPI personalizzato con il nome del pacchetto preinstallato e specifica la versione richiesta. Sconsigliamo di eseguire il downgrade dei pacchetti preinstallati.
Verifica se le versioni di Cloud Composer successive utilizzano una versione diversa del pacchetto preinstallato. Puoi verificare la presenza di potenziali conflitti di pacchetti PyPI prima di eseguire l'upgrade dell'ambiente a una versione successiva di Cloud Composer.
Utilizza PythonVirtualenvOperator per isolare gli snippet di codice che richiedono pacchetti in conflitto.
Server dei metadati non disponibile durante l'installazione dei pacchetti PyPI
Se il tuo ambiente utilizza un file pip.conf
personalizzato, potrebbe verificarsi un problema se non è possibile installare nuovi pacchetti PyPI nel tuo ambiente. Nei log di Cloud Build relativi all'errore di installazione del pacchetto, puoi visualizzare il seguente messaggio di avviso:
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.
Questo problema è causato da un file pip.conf
che non consente l'accesso all'indice dei pacchetti predefinito all'indirizzo http://pypi.org/simple
. Ad esempio, se il file pip.conf
consente di installare pacchetti solo da un repository Artifact Registry personalizzato a causa del parametro index-url
ridefinito, l'installazione dei pacchetti dall'indice dei pacchetti predefinito non sarà disponibile.
Per risolvere il problema, assicurati che l'indice del pacchetto http://pypi.org/simple
sia stato aggiunto al file pip.conf
. Ad esempio, se l'indice del pacchetto principale è definito nel parametro index-url
, aggiungi l'indice http://pypi.org/simple
nel parametro extra-index-url
.
Passaggi successivi
- Installazione delle dipendenze Python
- Risoluzione dei problemi di aggiornamenti e upgrade dell'ambiente