Mendownload paket Python menggunakan akses repositori langsung untuk paket gratis

Di tingkat gratis, paket Assured Open Source Software dihosting di repositori Artifact Registry yang dikelola Google.

Halaman ini menjelaskan cara terhubung ke repositori Artifact Registry untuk Assured OSS guna mengakses dan mendownload paket Python secara langsung.

Dokumen ini hanya berlaku untuk paket gratis. Untuk tingkat premium, lihat Mendownload paket Python menggunakan akses repositori langsung.

Sebelum memulai

  1. Minta administrator untuk memberi Anda peran IAM Admin Kunci Akun Layanan (roles/iam.serviceAccountKeyAdmin) di organisasi Anda. Anda memerlukan izin ini untuk mendapatkan string berenkode base64 dari kunci akun layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

  2. Konfigurasi Assured OSS. Untuk paket gratis, kirimkan formulir pengaktifan pelanggan untuk mengaktifkan akses ke Assured OSS.

  3. Validasi konektivitas ke Assured OSS untuk akun layanan yang diminta.

  4. Aktifkan Artifact Registry API untuk project induk Google Cloud dari akun layanan yang digunakan untuk mengakses Assured OSS.

  5. Instal Google Cloud CLI versi terbaru. Jika Anda telah menginstal Google Cloud CLI sebelumnya, pastikan Anda memiliki versi terbaru dengan menjalankan perintah ini:

    gcloud components update
    

Menyiapkan autentikasi

Anda dapat melakukan autentikasi ke repositori paket Python Assured OSS menggunakan salah satu metode berikut:

  • Melakukan autentikasi dengan keyring Python
  • Melakukan autentikasi dengan kunci akun layanan

Bagian berikut menjelaskan cara menyiapkan metode autentikasi ini.

Melakukan autentikasi dengan keyring Python

Untuk melakukan autentikasi dengan Artifact Registry menggunakan Python, sebaiknya gunakan Python keyring. Untuk mengetahui informasi selengkapnya, lihat mengautentikasi dengan keyring dan urutan penelusuran kredensial.

Untuk menyiapkan keyring Python untuk autentikasi, lakukan hal berikut:

  1. Instal library keyring:

    pip install keyring
    
  2. Instal backend Artifact Registry:

    pip install keyrings.google-artifactregistry-auth
    
  3. Mencantumkan backend untuk mengonfirmasi penginstalan:

    keyring --list-backends
    

    Daftar harus mencakup hal berikut:

    • ChainerBackend(priority:10)
    • GooglePythonAuth(priority:9)
  4. Untuk mengetahui informasi tentang cara menyiapkan Kredensial Default Aplikasi, lihat Menyiapkan autentikasi.

    Langkah ini memastikan bahwa helper kredensial Assured OSS mendapatkan kunci Anda saat terhubung dengan repositori.

Melakukan autentikasi dengan kunci akun layanan

Lakukan autentikasi dengan kunci akun layanan saat aplikasi memerlukan autentikasi dengan nama pengguna dan sandi.

Ganti URL repositori paket https://us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple dengan URL https://_json_key_base64:$BASE64_KEY@us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple

Menginstal paket

Petunjuk berikut mengasumsikan bahwa Anda menggunakan PyPI dan requirements.txt untuk mendownload dan mengelola dependensi. Jika Anda menggunakan proses pengelolaan dependensi lainnya, Anda harus menggunakan langkah-langkah yang berbeda.

Menginstal paket di Assured OSS

Untuk menentukan paket Python Assured OSS yang ingin Anda download, buat dua file requirements.txt. Contoh file adalah sebagai berikut:

  • requirements-google.txt

    # Packages present in Google's Artifact Registry
    
    urllib3==1.26.11 --hash=sha256:1cffe1aa066363a75c856f261c8fce62d87f7c40ce0f46453ea12bf652b12a13
    jsonschema==4.13.0 --hash=sha256:29895bfe55b93b75552fbdd1e09aa0c82b7c1c9395d4f267e10c7d43cd31a74e
    
  • requirements-pypi.txt

    # Packages present in Google's Artifact Registry are mentioned here so that pip
    # downloads their dependencies from PyPI.
    
    urllib3==1.26.11
    jsonschema==4.13.0
    
    # Below this comment, add any package version which you need but is NOT
    # present in Google's Artifact Registry and therefore needs to be downloaded from
    # PyPI.
    

Untuk mendownload paket, jalankan perintah berikut:

  • Untuk mendownload paket yang diperlukan yang ada di Artifact Registry untuk Assured OSS, jalankan perintah berikut:

     pip install --require-hashes --requirement=requirements-google.txt \
         --index-url https://_json_key_base64:$BASE64_KEY@us-python.pkg.dev/cloud-aoss/cloud-aoss-python/simple -v \
         --no-deps
    

    Pertimbangkan hal berikut:

    • --require-hashes bersifat opsional. Jika disertakan, hash ditentukan untuk semua paket dan untuk semua versi paket dalam file requirements.txt.
    • -v bersifat opsional. Jika ditentukan, perintah akan memberikan lebih banyak output. Sebaiknya sematkan dependensi dengan hash SHA-256 di file requirements.txt Anda untuk memastikan keamanan dan kemampuan reproduksi.
  • Untuk mendownload paket yang diperlukan yang tidak ada di Artifact Registry untuk Assured OSS, jalankan perintah berikut:

     pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -v
    

    Perintah ini juga mendownload dependensi yang hilang dari paket yang telah Anda download menggunakan perintah sebelumnya.

Paket akses tidak tersedia di repositori Artifact Registry untuk Assured OSS

Assured OSS telah dikonfigurasi sebelumnya dengan Assured OSS sebagai repositori pilihan dan repositori publik kanonis, seperti Maven Central atau PyPI, sebagai repositori sekunder.

Untuk menggunakan fitur ini (pratinjau), Anda dapat menunjuk ke satu URL:

https://us-python.pkg.dev/cloud-aoss/python/simple

Mencantumkan semua paket Python yang tersedia di Assured OSS

Untuk menggunakan API guna mendapatkan daftar semua paket Python di repositori Artifact Registry, lihat Mencantumkan semua paket Python yang tersedia di Assured OSS.

Membuat file requirements-google.txt

Bagian ini memberikan informasi tambahan tentang pembuatan file requirements-google.txt yang diperlukan untuk mendownload paket Python. Untuk mendownload hash dan membuat file requirements-google.txt untuk lingkungan Anda, Anda dapat menggunakan salah satu dari dua opsi berikut:

  • Gunakan skrip untuk membuat satu file persyaratan untuk semua artefak.

  • Download file persyaratan terpisah untuk setiap artefak.

Bagian berikut memberikan informasi selengkapnya tentang opsi ini.

Opsi 1: Menggunakan skrip untuk membuat satu file persyaratan untuk semua artefak

Gunakan skrip generator.sh untuk membuat satu file requirements-google.txt untuk semua paket Python (beserta hashnya) yang tersedia dengan Assured OSS untuk sistem operasi Linux. Paket harus memenuhi batasan seperti versi Python, arsitektur mesin, dan sistem operasi. Kemudian, Anda dapat menghapus versi paket yang tidak diperlukan dan menggunakan file yang dihasilkan.

Skrip generator.sh membantu dalam dua cara berikut:

  • Membuat daftar versi paket Python terbaru yang tersedia dengan Assured OSS yang dapat diinstal dengan berhasil di sistem Anda.
  • Membuat file requirements-google.txt beserta semua hash.

Skrip yang diperlukan dan file README.md-nya tersedia di bucket Cloud Storage (gs://cloud-aoss/utils/python-requirements-txt/v1.0), yang dapat didownload menggunakan Google Cloud CLI.

Untuk mendownload skrip dan file README.md, ikuti langkah-langkah berikut:

  1. Lakukan autentikasi dengan akun layanan untuk mengakses bucket Cloud Storage menggunakan perintah berikut:

    gcloud auth activate-service-account --key-file KEY_FILE
    

    Ganti KEY_FILE dengan jalur ke file yang berisi kredensial akun layanan.

  2. Download generator.sh ke mesin Anda menggunakan perintah berikut:

    gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh PATH_TO_LOCAL_STORE --recursive
    

    Ganti PATH_TO_LOCAL_STORE dengan jalur lokal tempat Anda ingin menyimpan file yang didownload.

  3. Download file README.md menggunakan perintah berikut:

    gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursive
    

    Ganti PATH_TO_LOCAL_STORE dengan jalur lokal tempat Anda ingin menyimpan file yang didownload. File README.md berisi petunjuk tentang cara menggunakan skrip.

Untuk menjalankan skrip, gunakan perintah berikut:

  • Untuk membuat file requirements-google.txt, jalankan perintah berikut:

     chmod +x generator.sh
     ./generator.sh
    
  • Untuk mendapatkan informasi paket dalam file CSV, jalankan perintah berikut:

    chmod +x generator.sh
    ./generator.sh -i
    

Opsi 2: Download requirements.txt untuk setiap artefak yang diperlukan

Anda juga dapat mendownload file requirements.txt (yang berisi hash) terpisah untuk setiap artefak Python, lalu menggabungkannya ke dalam satu file requirements.txt.

Hash artefak tersedia di bucket Cloud Storage, yang dapat didownload menggunakan gcloud CLI. Hash untuk setiap paket dan versi berada di lokasi bucket Cloud Storage gs://cloud-aoss/python/PACKAGE_NAME/VERSION.

Untuk mendownload file requirements.txt, ikuti langkah-langkah berikut:

  1. Lakukan autentikasi dengan akun layanan untuk mengakses bucket Cloud Storage menggunakan perintah berikut:

    gcloud auth activate-service-account --key-file KEY_FILE
    

    Ganti KEY_FILE dengan jalur ke file yang berisi kredensial akun layanan.

  2. Download requirements.txt paket dan versi tertentu ke mesin lokal Anda menggunakan perintah berikut:

    gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursive
    

    Ganti kode berikut:

    • PACKAGE_NAME: nama paket
    • VERSION: versi paket
    • PATH_TO_LOCAL_STORE: jalur lokal tempat Anda ingin mendownload file

    Contoh perintah:

    gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach --recursive

    Contoh file requirements.txt:

    bleach==5.0.0 \
     --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812
    

    Konten setiap file requirements.txt tersebut dapat digabungkan menjadi satu file requirements-google.txt.

Langkah berikutnya