Menyimpan gem Ruby di Artifact Registry
Sebelum memulai
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Artifact Registry API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Make sure that you have the following role or roles on the project: Artifact Registry Administrator
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
- Click Grant access.
-
In the New principals field, enter your user identifier. This is typically the identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies, or contact your administrator.
- Click Select a role, then search for the role.
- To grant additional roles, click Add another role and add each additional role.
- Click Save.
-
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna membuat dan mengelola repositori gem Ruby Artifact Registry,
minta administrator untuk memberi Anda peran IAM
Administrator Artifact Registry (roles/artifactregistry.admin) di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Meluncurkan Cloud Shell
Dalam panduan memulai ini, Anda akan menggunakan Cloud Shell, yang merupakan lingkungan shell untuk mengelola resource yang dihosting di Google Cloud.
Cloud Shell telah diinstal lebih dulu dengan Google Cloud CLI dan Ruby. gcloud CLI menyediakan antarmuka command line utama untuk Google Cloud.
Meluncurkan Cloud Shell:
Buka Google Cloud konsol.
Di toolbar Google Cloud konsol, klik Activate Cloud Shell.
Sesi Cloud Shell akan terbuka di dalam frame yang lebih rendah di konsol.
Anda menggunakan shell ini untuk menjalankan perintah gcloud.
Mengonfigurasi autentikasi
Ruby mendukung dua metode untuk mengautentikasi permintaan ke repositori Artifact Registry Anda:
- RubyGems CLI: Mendukung permintaan push dan pull. CLI ini tersedia dengan Ruby secara default. Saat melakukan autentikasi dengan RubyGems, Anda harus melakukan autentikasi setiap kali membuat permintaan push atau pull ke repositori.
Bundler CLI: Mendukung permintaan pull. Bundler menyimpan paket dan upstream dalam gemfile, yang memungkinkan pengguna menstandarkan penyiapan di beberapa mesin tanpa perlu mengautentikasi setiap permintaan pull. Namun, Anda tetap harus melakukan autentikasi ulang kredensial ke Bundler sesekali.
Untuk menginstal Bundler CLI, masukkan
gem install bundler.
Melakukan autentikasi dengan RubyGems CLI
RubyGems CLI menggunakan token OAuth2 untuk mengautentikasi permintaan. Untuk meneruskan token OAuth2 ke panggilan ke repositori Artifact Registry, Anda harus meneruskan token Oauth2 dengan alamat repositori saat membuat permintaan. Token memiliki masa berlaku satu jam dan harus diperbarui setiap jam.
Mengautentikasi permintaan pull
Anda dapat mengautentikasi permintaan pull di command line Google Cloud CLI atau dengan memperbarui file .gemrc.
Mengautentikasi permintaan pull di command line
Untuk melakukan autentikasi untuk versi gem terbaru dalam permintaan pull, jalankan perintah berikut:
gem install GEM_NAME --source https://$ACCESS_TOKEN@LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Untuk melakukan autentikasi untuk versi gem tertentu, tambahkan
-v GEM_VERSION ke perintah gem install.
Dengan:
- GEM_NAME adalah nama gem yang menjadi alasan permintaan dibuat.
- LOCATION adalah lokasi regional atau multi-regional untuk repositori.
- PROJECT adalah ID project yang berisi repositori.
- REPOSITORY adalah ID repositori.
Melakukan autentikasi dalam file .gemrc
Anda dapat mengonfigurasi file /.gemrc global atau khusus project untuk melakukan autentikasi ke sumber Anda pada permintaan pull dengan menambahkan hal berikut:
# File: ~/.gemrc
# Use the ACCESS_TOKEN retrieved from export ACCESS_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)"
<...>
:sources:
- https://ACCESS_TOKEN@LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY/
<...>
Dengan:
- ACCESS_TOKEN adalah token akses OAuth2 Anda.
- LOCATION adalah lokasi regional atau multi-regional lokasi untuk repositori.
- PROJECT adalah ID project yang berisi repositori.
- REPOSITORY adalah ID repositori.
Untuk menginstal gem menggunakan sumber atau sumber yang ditentukan dalam file /.gemrc, jalankan:
gem install GEM_NAME
Mengautentikasi permintaan push
Anda dapat mengautentikasi permintaan push di command line Google Cloud CLI atau dengan memperbarui file kredensial.
Mengautentikasi permintaan push di command line
Untuk mengautentikasi permintaan push, jalankan perintah berikut:
export GEM_HOST_API_KEY="Bearer $(gcloud auth print-access-token)"
gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Dengan:
- GEM_NAME adalah nama gem yang menjadi alasan permintaan dibuat.
- LOCATION adalah lokasi regional atau multi-regional untuk repositori.
- PROJECT adalah ID project yang berisi repositori.
- REPOSITORY adalah ID repositori.
Mengautentikasi permintaan push dalam file kredensial
Alat command line gem menggunakan file ~/.gem/credentials untuk menyimpan kunci API
untuk melakukan push dan pull gem. Untuk mengonfigurasi file kredensial agar melakukan autentikasi ke sumber Anda pada permintaan push, lakukan hal berikut:
Perbarui file kredensial Anda:
Buka
~/.gem/credentialsdan tambahkan baris untuk repositori Anda. Kuncinya adalah URL repositori Anda, dan nilainya adalahBearer, diikuti dengan token Anda::rubygems_api_key: RUBYGEMS_ORG_KEY https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY: Bearer ACCESS_TOKENDengan:
- RUBYGEMS_ORG_KEY adalah kunci API untuk
RubyGems.org. - LOCATION adalah lokasi regional atau multi-regional untuk repositori.
- PROJECT adalah ID project yang berisi repositori.
- REPOSITORY adalah ID repositori.
- ACCESS_TOKEN adalah token akses OAuth2 Anda.
- RUBYGEMS_ORG_KEY adalah kunci API untuk
Kirim gem Anda. Perhatikan bahwa Anda tidak perlu menetapkan
GEM_HOST_API_KEY, karena Anda telah menentukan kunci dalam file kredensial.gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Melakukan autentikasi dengan Bundler
Ruby Bundler mengelola dependensi aplikasi di satu atau beberapa gem. Untuk menyiapkan Bundler, lakukan hal berikut:
Tambahkan alamat repositori Anda sebagai
sourcedi gemfile:# Gemfile # <...> source "https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY"Lakukan autentikasi ke repositori Anda menggunakan
bundle config:export GEM_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)" export HOST="https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY" bundle config $HOST $GEM_TOKEN
Dengan:
- LOCATION adalah lokasi regional atau multi-regional untuk repositori.
- PROJECT adalah project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.
- REPOSITORY adalah ID repositori. Jika Anda mengonfigurasi repositori Artifact Registry default, repositori tersebut akan digunakan jika flag ini dihilangkan dari perintah.
Anda harus melakukan autentikasi ulang ke repositori jarak jauh sesekali. Jika hal ini terjadi, jalankan perintah autentikasi yang sama dari Langkah 2.
Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi Bundler, lihat Gemfiles dalam dokumentasi bundler.io.
Untuk mengetahui informasi selengkapnya tentang metode autentikasi, lihat Mengonfigurasi autentikasi ke Artifact Registry untuk repositori gem Ruby.
Membuat repositori
Buat repositori untuk gem Anda.
Jalankan perintah berikut untuk membuat repositori gem Ruby baru di project saat ini bernama
quickstart-ruby-repodi lokasius-west1.gcloud artifacts repositories create quickstart-ruby-repo \ --repository-format=ruby \ --location=us-west1 \ --description="Ruby gem repository"Jalankan perintah berikut untuk memverifikasi bahwa repositori Anda telah dibuat:
gcloud artifacts repositories listUntuk menyederhanakan perintah
gcloud, tetapkan repositori default kequickstart-ruby-repodan lokasi default keus-west1. Setelah nilai ditetapkan, Anda tidak perlu menentukannya dalam perintahgcloudyang memerlukan repositori atau lokasi.Untuk menetapkan repositori, jalankan perintah berikut:
gcloud config set artifacts/repository quickstart-ruby-repoUntuk menetapkan lokasi, jalankan perintah berikut:
gcloud config set artifacts/location us-west1Untuk mengetahui informasi selengkapnya tentang perintah ini, lihat dokumentasi gcloud config set.
Mendownload gem
Saat Anda mem-build project Ruby, file distribusi akan disimpan di subdirektori lib di project Ruby Anda. Untuk menyederhanakan panduan memulai ini, Anda akan membuat direktori, lalu mendownload gem ke direktori tersebut.
Untuk membuat direktori, jalankan perintah berikut:
mkdir ruby-quickstart
mkdir ruby-quickstart/lib
cd ruby-quickstart/lib
Selanjutnya, download gem Anda. Anda dapat menggunakan gem Anda sendiri atau mendownload contoh gem dari halaman Popular Gems di rubygems.org. Untuk mendownload gem dari rubygems.org, jalankan perintah berikut:
gem fetch GEM_NAME
Sekarang Anda memiliki gem berjudul GEM_NAME di direktori
ruby_quickstart/lib. Di bagian berikutnya, Anda akan menggunakan RubyGems CLI untuk mengirim gem ke repositori Anda.
Mengirim gem ke repositori
Untuk mengirim gem ke repositori Anda, jalankan perintah berikut:
gem push GEM_NAME --host https://us-west1-ruby.pkg.dev/PROJECT/quickstart-ruby-repo
Dengan:
- GEM_NAME adalah nama gem yang akan dikirim ke repositori Anda.
- PROJECT adalah project ID. Jika flag ini dihilangkan, maka project saat ini atau default akan digunakan.
Melihat gem di repositori
Untuk memverifikasi bahwa gem Anda telah ditambahkan, cantumkan paket di repositori ruby-quickstart.
Jalankan perintah berikut:
gcloud artifacts packages list --repository=ruby-quickstart
Untuk melihat versi gem, jalankan perintah berikut:
gcloud artifacts versions list --package=GEM_NAME
Menginstal gem
Untuk menginstal gem yang baru saja Anda kirim ke repositori Artifact Registry, jalankan perintah berikut:
export GEM_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)"
gem install GEM_NAME --source https://$GEM_TOKEN@us-west1-ruby.pkg.dev/PROJECT/quickstart-ruby-repo
Dengan:
- GEM_NAME adalah nama gem yang akan diinstal di repositori Anda.
- PROJECT adalah project ID. Jika flag ini dihilangkan, maka project saat ini atau default akan digunakan.
Pemecahan masalah
Lihat Pemecahan masalah untuk gem Ruby guna mengetahui informasi selengkapnya.
Pembersihan
Agar akunAnda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut. Google Cloud
Sebelum menghapus repositori, pastikan gem yang ingin Anda simpan tersedia di lokasi lain.
Untuk menghapus repositori
quickstart-ruby-repo, jalankan perintah berikut:gcloud artifacts repositories delete quickstart-ruby-repoJika Anda ingin menghapus setelan repositori dan lokasi default yang Anda konfigurasi untuk konfigurasi
gcloudaktif, jalankan perintah berikut:gcloud config unset artifacts/repository gcloud config unset artifacts/location
Langkah berikutnya
- Pelajari lebih lanjut cara mengonfigurasi autentikasi
- Pelajari cara mengelola repositori
- Pelajari cara mengelola paket
- Baca sumber daya kami tentang DevOps dan jelajahi program penelitian kami.