Halaman ini menjelaskan cara mengelola modul Go terpaket yang disimpan di Artifact Registry.
Sebelum memulai
- Jika repositori target tidak ada, buat repositori baru. Pilih Go as the repository format.
- Pastikan Anda memiliki izin yang diperlukan untuk repositori.
- (Opsional) Konfigurasi default untuk perintah gcloud.
- Instal Go 1.15 atau yang lebih baru.
Instal add-on gcloud CLI package-go-module:
gcloud components install package-go-module
Konfigurasi Go to authenticate dengan Artifact Registry.
Peran yang Diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengelola modul, minta administrator Anda untuk memberi Anda peran IAM berikut pada repositori:
-
Lihat modul:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Download atau instal modul:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Tambahkan modul ke repositori:
Artifact Registry Writer (
roles/artifactregistry.writer
) -
Hapus modul:
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.
Mengupload modul
Mode repositori: standar
Untuk mengemas dan mengupload modul ke repositori Anda, jalankan perintah berikut:
gcloud artifacts go upload --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATION \ --module-path=MODULE_PATH \ --version=VERSION \ --source=SOURCE_LOCATION
Ganti kode berikut:
- PROJECT dengan project ID Google Cloud Anda.
- REPOSITORY dengan nama repositori tempat paket disimpan.
- LOCATION dengan lokasi regional atau multi-regional repositori.
- MODULE_PATH dengan jalur modul. Misalnya:
example.com/foo
Lihat Referensi Modul Go untuk informasi selengkapnya. - VERSION dengan
versi semantik
modul dalam bentuk
vX.Y.Z
denganX
sebagai versi utama,Y
adalah versi minor, danZ
adalah versi patch. - SOURCE_LOCATION dengan jalur ke direktori utama modul
Go Anda. Jika Anda menghilangkan flag
--source
, defaultnya adalah direktori saat ini.
Modul diupload ke Artifact Registry.
Untuk mengetahui informasi selengkapnya tentang cara membuat modul Go, lihat tutorial ini.
Upload versi modul baru
Mode repositori: standar
Untuk mengupload versi baru modul Anda ke project, repositori, dan lokasi default saat nilai default dikonfigurasi, jalankan perintah berikut dengan nomor versi yang baru:
gcloud artifacts go upload \ --module-path=MODULE_PATH \ --version=VERSION \ --source=SOURCE_LOCATION
Ganti VERSION dengan versi modul yang diupdate. Misalnya,
untuk mengupload versi 0.1.1
modul dengan jalur example.com/foo
, jalankan
perintah berikut:
gcloud artifacts go upload \ --module-path=example.com/foo \ --version=v0.1.1 \ --source=SOURCE_LOCATION
Untuk menandai modul sebagai versi pra-rilis, tambahkan tanda pisah setelah VERSION dan tambahkan ID pra-rilis modul Anda:
gcloud artifacts go upload \ --module-path=MODULE_PATH \ --version=VERSION-PRE_RELEASE_IDENTIFIERS \ --source=SOURCE_LOCATION
Ganti PRE_RELEASE_IDENTIFIERS dengan karakter alfanumerik ASCII dan tanda hubung yang dipisahkan titik. Misalnya, untuk mengupload pra-rilis modul dengan
modul example.com/foo
jalur yang diidentifikasi oleh alpha.x.12m.5
, jalankan
perintah berikut:
gcloud artifacts go upload \ --module-path=example.com/foo \ --version=v1.0.0-alpha.x.12m.5 \ --source=SOURCE_LOCATION
Upload versi utama baru
Mode repositori: standar
Versi utama tidak kompatibel dengan versi sebelumnya. Agar
pengguna tidak mengimpor perubahan yang dapat menyebabkan gangguan, versi utama setelah v1
harus memiliki
jalur modul yang berbeda dari versi sebelumnya. Dimulai dengan v2
, versi
utama ditambahkan ke akhir jalur modul.
Misalnya, jalur modul untuk v2.0.0
dari example.com/foo
adalah
example.com/foo/v2
.
Praktik terbaik yang direkomendasikan adalah mengembangkan versi utama setelah v1
di
direktori terpisah yang diberi nama berdasarkan akhiran versi utamanya.
Untuk mengupload versi utama baru 2.0.0
modul dengan jalur
example.com/foo
ke project, repositori, dan lokasi default saat
nilai default dikonfigurasi:
gcloud artifacts go upload --module-path=example.com/foo/v2 --version=v2.0.0
Membuat daftar modul
Mode repositori: standar
Jalankan perintah berikut untuk memeriksa modul Go yang diupload di project, repositori, dan lokasi default saat nilai default dikonfigurasi:
gcloud artifacts packages list
Output-nya akan terlihat seperti berikut:
Listing items under project my-project, location us-west1, repository my-repo. PACKAGE CREATE_TIME UPDATE_TIME example.com/foo 2022-06-03T20:43:39 2022-06-20T20:37:40
Lihat detail versi modul
Mode repositori: standar
Jalankan perintah berikut untuk melihat versi modul di project, repositori, dan lokasi default saat nilai default dikonfigurasi:
gcloud artifacts versions list --package=MODULE_PATH
Output-nya akan terlihat seperti berikut:
Listing items under project my-project, location us-west1, repository my-repo, package example.com/foo. VERSION DESCRIPTION CREATE_TIME UPDATE_TIME v0.1.0 2022-06-03T20:43:39 2022-06-03T20:43:39 v0.1.1 2022-06-20T20:37:40 2022-06-20T20:37:40
Menggunakan modul sebagai dependensi
Mode repositori: standar
Untuk mengimpor modul yang disimpan di Artifact Registry, Anda harus memerintahkan Go untuk mencari dependensi dari Artifact Registry dan mengabaikan database checksum. Ikuti petunjuk untuk menyiapkan autentikasi dan lingkungan Go dalam Menyiapkan autentikasi untuk Go.
Jika Anda menggunakan kredensial berumur pendek untuk mengautentikasi ke Artifact Registry, Anda harus me-refresh token OAuth dengan menjalankan perintah berikut:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@latest refresh
Jika modul Anda belum memiliki file
go.mod
, ubah direktori ke folder modul Anda dan jalankango mod init
untuk membuat filego.mod
bagi paket Anda.go mod init MODULE_PATH
Ganti MODULE_PATH dengan jalur modul untuk modul yang disimpan di Artifact Registry. Lihat Referensi Modul Go untuk mengetahui informasi selengkapnya.
Untuk mewajibkan versi modul yang disimpan di Artifact Registry, edit file
go.mod
Anda agar terlihat seperti berikut:module example.com/bar go 1.19 require example.com/foo v0.1.0
Ganti kode berikut:
example.com/foo
adalah jalur modul dari modul yang diperlukanv0.1.0
adalah versi yang disimpan di Artifact Registry
Sertakan jalur modul seperti biasa di bagian
import
pada filemain.go
Anda.Misalnya, untuk mengimpor modul dengan jalur
example.com/foo
yang tersimpan di Artifact Registry, bagian impor Anda mungkin terlihat seperti berikut:package main import ( foo "example.com/foo" ) func main() { ... }
Jalankan
go mod tidy
untuk mendownload dependensi:go mod tidy
Jalankan modul Anda seperti biasa:
go run .
Modul yang disimpan di Artifact Registry akan didownload dan digunakan sebagai dependensi.
Menghapus modul Go yang dikemas
Mode repositori: standar
Anda dapat menghapus paket dan semua versinya, atau menghapus versi tertentu.
- Setelah menghapus paket, Anda tidak dapat mengurungkan tindakan ini.
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
- Coba Panduan Memulai Go.
- Download masing-masing file yang terkait dengan modul atau versi tanpa menggunakan perintah Go.