Questa pagina descrive come configurare l'autenticazione con un repository di gemme Ruby di Artifact Registry.
Devi autenticarti in Artifact Registry quando utilizzi un'applicazione di terze parti per connetterti a un repository.
Non è necessario configurare l'autenticazione per Cloud Build o per gli ambienti di runtime Google Cloud come Google Kubernetes Engine e Cloud Run.
Prima di iniziare
- Se il repository di destinazione non esiste, crea un repository di gem Ruby.
- Verifica che Ruby sia installato. Per le istruzioni di installazione, consulta l'Google Cloud esercitazione sulla configurazione di Ruby.
- Verifica che l'account utente o il account di servizio che utilizzi disponga delle autorizzazioni richieste per accedere al repository.
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
- (Facoltativo) Configura le impostazioni predefinite per i comandi gcloud CLI.
Panoramica
Ruby supporta due metodi per autenticare le richieste al repository Artifact Registry:
- Interfaccia a riga di comando RubyGems: supporta le richieste push e pull. Questa CLI è disponibile con Ruby per impostazione predefinita. Quando esegui l'autenticazione con RubyGems, devi autenticarti ogni volta che effettui una richiesta push o pull al tuo repository.
Interfaccia a riga di comando Bundler: supporta le richieste di pull. Bundler memorizza pacchetti e upstream in un gemfile, che consente agli utenti di standardizzare le configurazioni su più macchine senza dover autenticare ogni singola richiesta pull. Tuttavia, di tanto in tanto devi comunque eseguire nuovamente l'autenticazione delle credenziali in Bundler.
Per installare Bundler CLI, inserisci
gem install bundler.
Esegui l'autenticazione con RubyGems CLI
La CLI RubyGems utilizza token OAuth2 per autenticare una richiesta. Per trasmettere i token OAuth2 alle chiamate ai repository Artifact Registry, devi prima generare il token e poi trasmetterlo con l'indirizzo del repository quando effettui una richiesta. I token hanno una durata di un'ora e devono essere aggiornati ogni ora.
Autenticare le richieste di pull
Puoi autenticare una richiesta di pull nella riga di comando di Google Cloud CLI o aggiornando il file .gemrc.
Autenticare le richieste pull nella riga di comando
Per eseguire l'autenticazione per l'ultima versione della gemma nella richiesta pull, esegui questo comando:
export GEM_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)"
gem install GEM_NAME --source https://$GEM_TOKEN@LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Per l'autenticazione per una versione specifica di gem, aggiungi
-v GEM_VERSION al comando gem install.
Dove:
- GEM_NAME è il nome del gem per cui viene effettuata la richiesta.
- LOCATION è la posizione regionale o multiregionale del repository.
- PROJECT è l'ID del progetto contenente il repository.
- REPOSITORY è l'ID del repository.
Autenticarsi in un file .gemrc
Puoi configurare il file /.gemrc globale o specifico del progetto per l'autenticazione
alle tue origini nelle richieste pull aggiungendo quanto segue:
# File: ~/.gemrc
# Use the GEM_TOKEN retrieved from export GEM_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)"
<...>
:sources:
- https://GEM_TOKEN@LOCATION-ruby.pkg.dev/PROJECT/REPO/
<...>
Per installare un gem utilizzando l'origine o le origini definite nel file /.gemrc, esegui:
gem install GEM_NAME
Autenticare le richieste push
Puoi autenticare una richiesta push nella riga di comando di Google Cloud CLI o aggiornando il file delle credenziali.
Autenticare le richieste push nella riga di comando
Per autenticare la richiesta di push, esegui questo comando:
export GEM_HOST_API_KEY="Bearer $(gcloud auth print-access-token)"
gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Dove:
- GEM_NAME è il nome del gem per cui viene effettuata la richiesta.
- LOCATION è la posizione regionale o multiregionale del repository.
- PROJECT è l'ID del progetto contenente il repository.
- REPOSITORY è l'ID del repository.
Autenticare le richieste push in un file delle credenziali
Lo strumento a riga di comando gem utilizza il file ~/.gem/credentials per archiviare le chiavi API
per il push e il pull di gem. Per configurare il file delle credenziali per
l'autenticazione alle origini nelle richieste push:
Genera un token di accesso OAuth2 eseguendo il seguente comando:
gcloud auth print-access-tokenQuesto token funge da chiave API per Artifact Registry.
Aggiorna il file delle credenziali:
Apri
~/.gem/credentialse aggiungi una riga per il tuo repository. La chiave è l'URL del repository e il valore èBearer, seguito dal token::rubygems_api_key: RUBYGEMS_ORG_KEY https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY: Bearer OAUTH_TOKENDove:
- RUBYGEMS_ORG_KEY è la chiave API per
RubyGems.org. - LOCATION è la posizione regionale o multiregionale del repository.
- PROJECT è l'ID del progetto contenente il repository.
- REPOSITORY è l'ID del repository.
- OAUTH_TOKEN è il tuo token di accesso OAuth2.
- RUBYGEMS_ORG_KEY è la chiave API per
Esegui il push del tuo Gem. Tieni presente che non devi impostare
GEM_HOST_API_KEY, in quanto hai già definito la chiave nel file delle credenziali.gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Autenticarsi con Bundler
Bundler di Ruby gestisce le dipendenze delle applicazioni in una o più gemme. Per configurare Bundler:
Aggiungi l'indirizzo del tuo repository come
sourcenel tuo Gemfile:# Gemfile # <...> source "https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY"Esegui l'autenticazione nel repository utilizzando
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
Dove:
- LOCATION è la posizione regionale o multiregionale del repository.
- PROJECT è l'ID progetto. Se questo flag viene omesso, viene utilizzato il progetto predefinito corrente.
- REPOSITORY è l'ID del repository. Se hai configurato un repository Artifact Registry predefinito, questo viene utilizzato quando questo flag viene omesso dal comando.
Di tanto in tanto dovrai eseguire nuovamente l'autenticazione al repository remoto. In questo caso, esegui lo stesso comando di autenticazione del passaggio 2.
Per ulteriori informazioni sulla configurazione di Bundler, consulta la sezione Gemfiles nella documentazione di bundler.io.
Passaggi successivi
- Configurare l'accesso ai repository
- Scopri di più sulla gestione dei repository
- Scopri di più sulla gestione dei pacchetti