Halaman ini menjelaskan cara menambahkan, melihat, dan menghapus paket serta versi paket Python.
Sebelum memulai
Instal dan initialize Google Cloud CLI.
Google Cloud CLI versi 354.0.0 atau yang lebih baru diperlukan untuk menjalankan perintah untuk repositori Python. Anda dapat memeriksa versi dengan perintah:
gcloud version
Jika repositori target tidak ada, buat repositori paket Python baru.
Pastikan Python 3 telah diinstal. Untuk mengetahui petunjuk penginstalan, lihat tutorial Google Cloud untuk menyiapkan Python.
(Opsional) Konfigurasi default untuk perintah gcloud.
Jika Anda menggunakan autentikasi keyring dengan kredensial gcloud, login ke Google Cloud CLI dengan akun pengguna atau akun layanan Anda.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengelola paket, minta administrator untuk memberi Anda peran IAM berikut pada repositori:
-
Melihat paket atau file dalam paket:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Download atau instal paket:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Tambahkan paket ke repositori:
Artifact Registry Writer (
roles/artifactregistry.writer
) -
Hapus paket:
Artifact Registry Repository Administrator (
roles/artifactregistry.repoAdmin
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menambahkan paket
Mode repositori: standar
Saat Anda mem-build project Python, file distribusi akan disimpan di subdirektori dist
dalam project Anda. Anda kemudian dapat menggunakan Twine untuk mengupload paket ke repositori standar.
Kami merekomendasikan praktik terbaik berikut untuk paket Anda:
- Gunakan nama unik untuk paket pribadi Anda agar tidak cocok dengan nama paket di pypi.org, khususnya jika konfigurasi pip Anda menyertakan beberapa indeks paket.
- Gunakan spesifikasi ID versi di PEP 440 untuk nomor versi paket Anda. Secara default, pip hanya menginstal rilis stabil. Library ini menggunakan spesifikasi ID versi untuk membedakan versi stabil dari versi pra-rilis dan untuk mengurai persyaratan untuk versi yang akan diinstal.
Untuk menambahkan paket:
Instal Twine.
pip install twine
Ubah ke direktori project Python Anda.
Upload file distribusi ke repositori dari subdirektori
dist
project. Jalankan perintah berikut:twine upload dist/*
Anda dapat menentukan repositori tertentu dengan flag
--repository-url
.twine upload --repository-url https://LOCATION-python.pkg.dev/PROJECT/REPOSITORY/ dist/*
Melihat paket dan versi
Mode repositori: standar, jarak jauh
Untuk melihat paket dan versi paket menggunakan Konsol Google Cloud
atau gcloud
:
Konsol
Buka halaman Repositories di Konsol Google Cloud.
Dalam daftar repositori, klik repositori yang sesuai.
Halaman Packages mencantumkan paket dalam repositori.
Klik paket untuk melihat versi paket.
gcloud
Untuk mencantumkan paket dalam repositori, jalankan perintah berikut:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Dari mana
- REPOSITORY adalah nama repositori. Jika mengonfigurasi repositori default, Anda dapat menghilangkan tanda ini untuk menggunakan repositori default.
- LOCATION adalah lokasi regional atau multi-regional. Gunakan flag ini untuk melihat repositori di lokasi tertentu. Jika mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan lokasi default.
Untuk melihat versi paket, jalankan perintah berikut:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Dari mana
- PACKAGE adalah ID paket atau ID yang sepenuhnya memenuhi syarat untuk paket tersebut.
- REPOSITORY adalah nama repositori. Jika mengonfigurasi repositori default, Anda dapat menghilangkan tanda ini untuk menggunakan repositori default.
- LOCATION adalah lokasi regional atau multi-regional. Gunakan flag ini untuk melihat repositori di lokasi tertentu. Jika mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan lokasi default.
Untuk repositori jarak jauh, daftar yang ditampilkan harus menyertakan semua dependensi langsung dan transitif.
Membuat listingan file
Mode repositori: standar, jarak jauh
Anda dapat mencantumkan file dalam repositori, file dalam semua versi paket tertentu, atau file dalam versi paket tertentu.
Untuk semua perintah berikut, Anda dapat menetapkan jumlah file maksimum yang akan ditampilkan dengan menambahkan flag --limit
ke perintah.
Untuk mencantumkan semua file dalam project, repositori, dan lokasi default saat nilai default dikonfigurasi:
gcloud artifacts files list
Untuk menampilkan daftar file dalam project, repositori, dan lokasi yang ditentukan, jalankan perintah:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Untuk menampilkan daftar file bagi semua versi paket tertentu:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Untuk menampilkan daftar file untuk versi paket tertentu:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Ganti nilai berikut:
LOCATION
: lokasi regional atau multi-regional repositori.PROJECT
: project ID Google Cloud Anda. Jika project ID Anda berisi titik dua (:
), lihat Project cakupan domain.REPOSITORY
: nama repositori tempat image disimpan.PACKAGE
: nama paket.VERSION
: versi paket.
Contoh
Pertimbangkan informasi paket berikut:
- Project:
my-project
- Repositori:
my-repo
- Lokasi repositori:
us-central1
- Paket:
my-app
Perintah berikut mencantumkan semua file dalam repositori my-repo
di
lokasi us-central1
dalam project default:
gcloud artifacts files list \
--location=us-central1 \
--repository=my-repo
Perintah berikut mencantumkan file dalam versi 1.0
paket.
gcloud artifacts files list \
--project=my-project \
--location=us-central1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Menginstal paket
Mode repositori: standar, jarak jauh, virtual
Gunakan perintah pip
untuk menginstal paket.
Untuk menginstal rilis stabil terbaru dari sebuah paket, jalankan perintah:
pip install PACKAGE
Untuk repositori standar, Anda mendownload paket langsung dari repositori.
Untuk repositori jarak jauh, Anda harus mendownload salinan paket yang di-cache dan dependensinya. Jika salinan yang di-cache tidak ada, repositori jarak jauh akan mendownload paket dari sumber upstream dan men-cache-nya sebelum menayangkannya kepada Anda. Anda dapat memverifikasi bahwa repositori jarak jauh mengambil paket dari sumber upstream dengan melihat daftar paket dalam repositori.
Untuk repositori virtual, Artifact Registry menelusuri repositori upstream untuk paket yang diminta.
- Repositori jarak jauh upstream akan mendownload dan meng-cache paket yang diminta jika salinan yang di-cache tidak ada. Repositori virtual hanya menyajikan paket yang diminta, tidak menyimpannya.
- Jika Anda meminta versi yang tersedia di lebih dari satu repositori upstream, Artifact Registry akan memilih repositori upstream yang akan digunakan berdasarkan setelan prioritas yang dikonfigurasi untuk repositori virtual.
Misalnya, pertimbangkan repositori virtual dengan setelan prioritas berikut untuk repositori upstream:
main-repo
: Prioritas ditetapkan ke100
secondary-repo1
: Prioritas ditetapkan ke80
.secondary-repo2
: Prioritas ditetapkan ke80
.test-repo
: Prioritas ditetapkan ke20
.
main-repo
memiliki nilai prioritas tertinggi, sehingga repositori virtual
selalu menelusurinya terlebih dahulu.
secondary-repo1
dan secondary-repo2
memiliki prioritas yang ditetapkan ke 80
. Jika paket yang diminta tidak tersedia di main-repo
, Artifact Registry akan menelusuri repositori ini berikutnya. Karena keduanya memiliki nilai prioritas yang sama, Artifact Registry dapat memilih untuk menyalurkan paket dari salah satu repositori jika versi tersebut tersedia di keduanya.
test-repo
memiliki nilai prioritas terendah dan akan menayangkan artefak tersimpan jika
tidak ada repositori upstream lain yang memilikinya.
Informasi tambahan
Secara default, pip menginstal versi stabil sebuah paket dan mengabaikan versi pra-rilis. PEP 440 menentukan spesifikasi ID versi Python yang mengarahkan pengguna untuk mengurai nomor versi, termasuk versi pra-rilis.
Untuk menyertakan versi pra-rilis saat pip menelusuri paket yang akan diinstal, flag --pre
ke perintah Anda.
pip install --pre PACKAGE
Untuk menentukan versi atau rentang versi yang diperlukan, sertakan penentu persyaratan. Anda dapat menyertakan persyaratan versi secara langsung di perintah atau menggunakan file persyaratan.
Misalnya, perintah ini menentukan bahwa versi minimum my-package
adalah
versi pengembangan 1.0.dev0
.
pip install --pre my-package>=1.0.dev0
Rilis stabil dianggap lebih baru daripada versi pra-rilis. Jadi, jika versi 1.0
ada dalam repositori, pip akan memilih versi 1.0
daripada versi pra-rilis.
Jika Anda tidak menentukan repositori, konfigurasi pip di pip.conf
akan menentukan cara pip menelusuri paket tersebut.
- Jika Anda mengonfigurasi repositori Artifact Registry dengan setelan
index-url
dan tidak ada indeks paket lainnya yang dikonfigurasi, pip hanya akan menelusuri repositori Artifact Registry Anda untuk paket tersebut. - Jika Anda menggunakan repositori virtual, Artifact Registry akan menggunakan prioritas yang dikonfigurasi dalam kebijakan upstream untuk memilih paket saat beberapa repositori upstream memiliki versi paket yang diminta. Jika dua repositori dengan paket memiliki prioritas yang sama, Artifact Registry akan menayangkannya dari salah satu repositori.
- Jika Anda mengonfigurasi pip dengan setelan
extra-index-url
atau jika Anda mengonfigurasi beberapa indeks paket, pip akan menelusuri pypi.org dan indeks paket lainnya yang dikonfigurasi dan memilih versi terbaru paket.
Anda dapat mengganti setelan index-url
atau extra-index-url
dalam file persyaratan. Anda juga dapat menggunakan flag untuk setelan ini dalam perintah pip. Misalnya, perintah ini akan mengganti index-url
dengan repositori Artifact Registry.
pip install --index-url https://us-east1-python.pkg.dev/my-project/python-repo/simple/ my-package
Untuk mengetahui informasi lebih lanjut tentang cara menginstal paket, lihat dokumentasi Pengemasan Python.
Menghapus paket dan versi
Mode repositori: standar, jarak jauh
Anda dapat menghapus paket dan semua versinya, atau menghapus versi tertentu.
- Setelah menghapus paket, Anda tidak dapat mengurungkan tindakan ini.
- Untuk repositori jarak jauh, hanya salinan paket yang di-cache yang akan dihapus. Sumber upstream tidak akan terpengaruh. Jika Anda menghapus paket yang di-cache, Artifact Registry akan mendownload dan meng-cache-nya lagi saat berikutnya repositori menerima permintaan untuk versi paket yang sama.
Sebelum menghapus paket atau versi paket, pastikan Anda telah mengomunikasikan atau mengatasi dependensi penting pada paket atau versi tersebut.
Untuk menghapus paket:
Konsol
Buka halaman Repositories di Konsol Google Cloud.
Dalam daftar repositori, klik repositori yang sesuai.
Halaman Packages mencantumkan paket dalam repositori.
Pilih paket yang ingin Anda hapus.
Klik HAPUS.
Di kotak dialog konfirmasi, klik HAPUS.
gcloud
Jalankan perintah berikut:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Dari mana
- PACKAGE adalah nama paket dalam repositori.
- REPOSITORY adalah nama repositori. Jika mengonfigurasi repositori default, Anda dapat menghilangkan tanda ini untuk menggunakan repositori default.
- LOCATION adalah lokasi regional atau multi-regional. Gunakan flag ini untuk melihat repositori di lokasi tertentu. Jika mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan lokasi default.
--async
Segera kembali, tanpa menunggu operasi yang sedang berlangsung selesai.
Untuk menghapus versi paket:
Konsol
Buka halaman Repositories di Konsol Google Cloud.
Dalam daftar repositori, klik repositori yang sesuai.
Halaman Packages mencantumkan paket dalam repositori.
Klik paket untuk melihat versi paket tersebut.
Pilih versi yang ingin Anda hapus.
Klik HAPUS.
Di kotak dialog konfirmasi, klik HAPUS.
gcloud
Jalankan perintah berikut:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Dari mana
- PACKAGE adalah nama paket dalam repositori.
- REPOSITORY adalah nama repositori. Jika mengonfigurasi repositori default, Anda dapat menghilangkan tanda ini untuk menggunakan repositori default.
- LOCATION adalah lokasi regional atau multi-regional. Gunakan flag ini untuk melihat repositori di lokasi tertentu. Jika mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan lokasi default.
--async
segera ditampilkan, tanpa menunggu operasi yang sedang berlangsung selesai.
Langkah selanjutnya
- Pelajari cara mengelola paket Java
- Pelajari cara mengelola paket Node.js
- Pelajari cara mengelola image container
- Mendownload file satu per satu dalam paket