Esta página descreve como configurar a autenticação com um repositório de gems Ruby do Artifact Registry.
Tem de se autenticar no Artifact Registry quando usa uma aplicação de terceiros para se ligar a um repositório.
Não precisa de configurar a autenticação para o Cloud Build nem para os Google Cloud ambientes de tempo de execução, como o Google Kubernetes Engine e o Cloud Run.
Antes de começar
- Se o repositório de destino não existir, crie um repositório de gemas Ruby.
- Confirme se o Ruby está instalado. Para ver instruções de instalação, consulte o Google Cloud tutorial de configuração do Ruby.
- Verifique se a conta de utilizador ou a conta de serviço que está a usar tem as autorizações necessárias para aceder ao repositório.
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud initSe estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- (Opcional) Configure as predefinições para os comandos da CLI gcloud.
Vista geral
O Ruby suporta dois métodos para autenticar pedidos ao seu repositório do Artifact Registry:
- CLI do RubyGems: suporta pedidos de envio e obtenção. Esta CLI está disponível com o Ruby por predefinição. Quando se autentica com o RubyGems, tem de se autenticar sempre que faz um pedido push ou pull para o seu repositório.
CLI Bundler: suporta pedidos de envio. O Bundler armazena pacotes e envios em um Gemfile, o que permite aos utilizadores padronizar as configurações em várias máquinas sem necessidade de autenticar cada pedido de obtenção individual. No entanto, tem de voltar a autenticar as suas credenciais no Bundler ocasionalmente.
Para instalar a CLI Bundler, introduza
gem install bundler.
Autentique com a CLI do RubyGems
A CLI RubyGems usa tokens OAuth2 para autenticar um pedido. Para transmitir tokens OAuth2 para chamadas aos seus repositórios do Artifact Registry, tem de primeiro gerar o token e, em seguida, transmiti-lo com a morada do seu repositório quando fizer um pedido. Os tokens têm uma duração de uma hora e têm de ser atualizados de hora a hora.
Autentique pedidos de envio
Pode autenticar um pedido de obtenção na linha de comandos da CLI do Google Cloud ou
atualizando o ficheiro .gemrc.
Autentique pedidos de obtenção na linha de comandos
Para se autenticar na versão mais recente do gem no seu pedido de envio, execute o seguinte comando:
export GEM_TOKEN="oauth2accesstoken:$(gcloud auth print-access-token)"
gem install GEM_NAME --source https://$GEM_TOKEN@LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Para fazer a autenticação para uma versão específica do gem, adicione -v GEM_VERSION ao comando gem install.
Onde:
- GEM_NAME é o nome da pedra preciosa para a qual o pedido é feito.
- LOCATION é a localização regional ou multirregional do repositório.
- PROJECT é o ID do projeto que contém o repositório.
- REPOSITORY é o ID do repositório.
Autentique-se num ficheiro .gemrc
Pode configurar o ficheiro /.gemrc global ou específico do projeto para autenticar
as suas fontes em pedidos de obtenção adicionando o seguinte:
# 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/
<...>
Para instalar um gem através da origem ou das origens definidas no ficheiro /.gemrc, execute o seguinte comando:
gem install GEM_NAME
Autentique pedidos push
Pode autenticar um pedido push na linha de comandos da Google Cloud CLI ou atualizando o ficheiro de credenciais.
Autentique pedidos push na linha de comandos
Para autenticar o pedido push, execute o seguinte comando:
export GEM_HOST_API_KEY="Bearer $(gcloud auth print-access-token)"
gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Onde:
- GEM_NAME é o nome da pedra preciosa para a qual o pedido é feito.
- LOCATION é a localização regional ou multirregional do repositório.
- PROJECT é o ID do projeto que contém o repositório.
- REPOSITORY é o ID do repositório.
Autentique pedidos push num ficheiro de credenciais
A ferramenta de linha de comandos gem usa o ficheiro ~/.gem/credentials para armazenar chaves da API
para enviar e extrair gems. Para configurar o ficheiro de credenciais para autenticar as suas fontes em pedidos push, faça o seguinte:
Gere uma chave de acesso OAuth2 executando o seguinte comando:
gcloud auth print-access-tokenEste token funciona como a sua chave da API para o Artifact Registry.
Atualize o ficheiro de credenciais:
Abra o ficheiro
~/.gem/credentialse adicione uma linha para o seu repositório. A chave é o URL do seu repositório e o valor éBearer, seguido do seu token::rubygems_api_key: RUBYGEMS_ORG_KEY https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY: Bearer OAUTH_TOKENOnde:
- RUBYGEMS_ORG_KEY é a chave da API para
RubyGems.org. - LOCATION é a localização regional ou multirregional do repositório.
- PROJECT é o ID do projeto que contém o repositório.
- REPOSITORY é o ID do repositório.
- OAUTH_TOKEN é a sua chave de acesso OAuth2.
- RUBYGEMS_ORG_KEY é a chave da API para
Empurre a gema. Tenha em atenção que não precisa de definir o
GEM_HOST_API_KEY, uma vez que já definiu a chave no ficheiro de credenciais.gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Autentique com o Bundler
O Bundler do Ruby gere as dependências das aplicações em um ou mais gems. Para configurar o Bundler, faça o seguinte:
Adicione o endereço do seu repositório como um
sourceno seu gemfile:# Gemfile # <...> source "https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY"Autentique-se no repositório através de
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
Onde:
- LOCATION é a localização regional ou multirregional do repositório.
- PROJECT é o ID do projeto. Se esta flag for omitida, é usado o projeto predefinido atual.
- REPOSITORY é o ID do repositório. Se configurou um repositório do Artifact Registry predefinido, este é usado quando esta flag é omitida do comando.
Tem de voltar a autenticar-se no repositório remoto ocasionalmente. Neste caso, execute o mesmo comando de autenticação do passo 2.
Para mais informações sobre a configuração do Bundler, consulte Gemfiles na documentação do bundler.io.