Memecahkan masalah penginstalan paket PyPI

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Halaman ini menjelaskan cara memecahkan masalah konflik dependensi saat menginstal paket PyPI khusus.

Masalah paling umum dengan paket PyPI yang mungkin Anda temui di Cloud Composer merupakan konflik dependensi.

Saat Anda menentukan paket PyPI khusus baru yang akan diinstal, paket ini atau dapat menyebabkan konflik dependensi dengan paket PyPI khusus lainnya atau yang sudah diinstal lebih dulu di lingkungan Anda. Dalam hal ini, lingkungannya operasi pembaruan gagal dengan sebuah kesalahan.

Error Cloud Build dan build dalam cluster

Jika terjadi masalah dengan paket, Anda akan mendapatkan pesan {i>error<i} tentang hal itu dalam dua bergantung pada cara lingkungan Anda di-deploy:

  • Cloud Build. Pesan {i>error<i} dan sebuah tautan 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.
    

Lihat detail pesan error

Jika 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 temukan log build:

  1. Temukan log build:

    1. Di Konsol Google Cloud, buka halaman Build history.

      Buka Histori build

    2. Pilih build yang gagal untuk melihat log-nya.

  2. Di 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 dalam log build dalam cluster

  1. Temukan log build:

    1. Di Konsol Google Cloud, buka halaman Environments.

      Buka Lingkungan

    2. Pilih lingkungan Anda.

    3. Buka tab Logs.

    4. Pilih All logs > Log Composer > Build > Pekerja & Image Scheduler.

    5. Di menu drop-down Severity, pilih Info.

  2. Pada log yang ditampilkan:

    1. Cari pesan error installer.sh. Misalnya:

      The command '/bin/sh -c bash installer.sh $COMPOSER_PYTHON_VERSION
      fail' returned a non-zero code: 1
      
    2. 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 khusus yang Anda instal dan paket yang sudah diinstal sebelumnya.

Anda dapat melihat daftar lengkap paket prainstal untuk versi Anda Cloud Composer pada Versi Cloud Composer.

Untuk mengatasi masalah ini, Anda dapat:

  • Instal paket PyPI kustom versi lain.

  • Menginstal versi lain dari paket yang telah diinstal lebih dulu. Untuk melakukannya, menginstal paket PyPI kustom dengan nama paket yang telah diinstal lebih dulu dan menentukan versi yang diperlukan. Kami tidak merekomendasikan untuk mendowngrade paket yang telah diinstal sebelumnya.

  • Lihat apakah versi Cloud Composer berikutnya menggunakan dari paket yang sudah diinstal lebih dulu. Anda dapat memeriksa potensi konflik paket PyPI sebelum Anda mengupgrade lingkungan Anda ke versi yang lebih baru Cloud Composer.

  • Menggunakan 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, maka Anda mungkin menghadapi masalah ketika tidak ada paket PyPI baru yang dapat diinstal di lingkungan Anda. Di Cloud Build, log yang terkait dengan paket error penginstalan, 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 memungkinkan instalasi paket dari repositori Artifact Registry khusus karena parameter index-url yang telah didefinisikan ulang, menginstal paket dari indeks paket default tidak tersedia.

Untuk mengatasi masalah ini, pastikan bahwa indeks paket http://pypi.org/simple ditambahkan ke file pip.conf Anda. Misalnya, jika indeks paket utama Anda ditentukan dalam parameter index-url, tambahkan http://pypi.org/simple indeks di parameter extra-index-url.

Langkah selanjutnya