Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Halaman ini menjelaskan cara memecahkan masalah konflik dependensi saat menginstal paket PyPI kustom.
Masalah paling umum pada paket PyPI yang mungkin Anda temui di Cloud Composer adalah konflik dependensi.
Saat Anda menentukan paket PyPI kustom baru untuk diinstal, paket ini atau versinya dapat menyebabkan konflik dependensi dengan paket PyPI kustom lainnya atau paket yang telah diinstal sebelumnya di lingkungan Anda. Dalam hal ini, operasi update lingkungan akan gagal dengan error.
Error Cloud Build dan build dalam cluster
Jika terjadi masalah pada paket, Anda akan mendapatkan pesan error tentang hal tersebut dengan dua cara, bergantung pada cara deployment lingkungan Anda:
Cloud Build. Pesan error dan link ke log Cloud Build. Contoh:
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 dalam cluster. Pesan error dan lokasi log build. Misalnya:
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.
Melihat pesan error mendetail
Saat penginstalan paket gagal, pip
akan melaporkan pesan error mendetail.
Anda dapat menemukan pesan error ini di log build.
Menemukan error pip
di log Cloud Build
Anda dapat mengikuti link dari pesan error Cloud Build, atau menemukan log build:
Temukan log build:
Di konsol Google Cloud, buka halaman Build history.
Pilih build yang gagal untuk melihat log-nya.
Dalam log build, temukan pesan error dari
pip
. Contoh: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.
Menemukan error pip
di log build dalam cluster
Temukan log build:
Di konsol Google Cloud, buka halaman Environments.
Pilih lingkungan Anda.
Buka tab Logs.
Pilih Semua log > Log Composer > Build > Gambar Pekerja & Penjadwal.
Di menu drop-down Keparahan, pilih Info.
Dalam log yang ditampilkan:
Temukan pesan error
installer.sh
. Misalnya:The command '/bin/sh -c bash installer.sh $COMPOSER_PYTHON_VERSION fail' returned a non-zero code: 1
Pesan info sebelumnya memiliki error
pip
mendetail. Misalnya: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.
Konflik dengan paket PyPI bawaan
Beberapa konflik paket terjadi antara paket PyPI kustom yang Anda instal dan paket yang telah diinstal sebelumnya.
Anda dapat melihat daftar lengkap paket yang telah diinstal sebelumnya untuk versi Cloud Composer di halaman versi Cloud Composer.
Untuk mengatasi masalah ini, Anda dapat:
Instal versi lain dari paket PyPI kustom.
Menginstal versi lain dari paket yang diinstal sebelumnya. Untuk melakukannya, instal paket PyPI kustom dengan nama paket yang telah diinstal sebelumnya dan tentukan versi yang diperlukan. Sebaiknya jangan downgrade paket yang diinstal sebelumnya.
Lihat apakah versi Cloud Composer yang lebih baru menggunakan versi paket bawaan yang berbeda. Anda dapat memeriksa potensi konflik paket PyPI sebelum mengupgrade lingkungan ke versi Cloud Composer yang lebih baru.
Gunakan PythonVirtualenvOperator untuk mengisolasi cuplikan kode yang memerlukan paket yang bertentangan.
Server metadata tidak tersedia saat menginstal paket PyPI
Jika lingkungan Anda menggunakan file pip.conf
kustom,
Anda mungkin mengalami masalah saat tidak ada paket PyPI baru yang dapat diinstal di
lingkungan Anda. Dalam log Cloud Build yang terkait dengan error penginstalan paket, Anda dapat melihat pesan peringatan berikut:
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.
Masalah ini disebabkan oleh file pip.conf
yang tidak mengizinkan akses ke
indeks paket default
di http://pypi.org/simple
. Misalnya, jika file pip.conf
Anda hanya
mengizinkan penginstalan paket dari repositori Artifact Registry kustom karena
parameter index-url
yang didefinisikan ulang, penginstalan paket dari
indeks paket default tidak tersedia.
Untuk mengatasi masalah ini, pastikan indeks paket http://pypi.org/simple
ditambahkan ke file pip.conf
Anda. Misalnya, jika indeks paket utama Anda
ditentukan dalam parameter index-url
, tambahkan indeks
http://pypi.org/simple
dalam parameter extra-index-url
.