Configurar e usar o RubyGems e o Bundler com o CodeArtifact - CodeArtifact

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar e usar o RubyGems e o Bundler com o CodeArtifact

Depois de criar um repositório no CodeArtifact, você pode usar o RubyGems (gem) e o Bundler (bundle) para instalar e publicar gems. Este tópico descreve como configurar os gerenciadores de pacotes para autenticação e usar um repositório do CodeArtifact.

Configurar o RubyGems (gem) e o Bundler (bundle) com o CodeArtifact

Para usar o RubyGems (gem) ou o Bundler (bundle) para publicar gems ou consumir gems por meio do AWS CodeArtifact, primeiro você precisa configurá-los com as informações do repositório do CodeArtifact, incluindo credenciais para acessá-lo. Siga as etapas em um dos procedimentos a seguir para configurar as ferramentas da CLI gem e bundle com as suas credenciais e as informações do endpoint do repositório do CodeArtifact.

Configurar o RubyGems e o Bundler usando as instruções do console

Você pode usar as instruções de configuração no console para conectar os gerenciadores de pacotes Ruby ao repositório do CodeArtifact. As instruções do console fornecem comandos personalizados que você pode executar para configurar os gerenciadores de pacotes sem precisar encontrar e preencher as informações do CodeArtifact.

  1. Abra o console do AWS CodeArtifact em https://console.aws.amazon.com/codesuite/codeartifact/home.

  2. No painel de navegação, selecione Repositórios e escolha o repositório que deseja usar para instalar ou enviar gems Ruby.

  3. Clique em Visualizar instruções de conexão.

  4. Selecione o seu sistema operacional.

  5. Escolha o cliente gerenciador de pacotes Ruby que você deseja configurar com o repositório do CodeArtifact.

  6. Siga as instruções geradas para configurar o cliente gerenciador de pacotes para instalar gems Ruby ou publicar gems Ruby no repositório.

Configurar o RubyGems e o Bundler manualmente

Se você não puder ou não quiser usar as instruções de configuração do console, poderá usar as instruções a seguir para conectar manualmente os gerenciadores de pacotes Ruby ao seu repositório do CodeArtifact.

  1. Em uma linha de comando, use o comando a seguir para buscar o token de autorização do CodeArtifact e armazená-lo em uma variável de ambiente.

    • Substitua my_domain pelo seu nome de domínio do CodeArtifact.

    • Substitua 111122223333 pelo ID da conta da AWS do proprietário do domínio. Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir --domain-owner. Para obter mais informações, consulte Domínios entre contas.

    macOS and Linux
    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
    Windows
    • Windows (usando o shell de comando padrão):

      for /f %i in ('aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i
    • Windows PowerShell:

      $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text
  2. Para publicar gems Ruby em seu repositório, use o comando a seguir para buscar o endpoint do repositório do CodeArtifact e armazená-lo na variável de ambiente RUBYGEMS_HOST. A CLI gem usa essa variável de ambiente para determinar onde os gems são publicados.

    nota

    Como alternativa, em vez de usar a variável de ambiente RUBYGEMS_HOST, você pode fornecer o endpoint do repositório com a opção --host ao usar o comando gem push.

    • Substitua my_domain pelo seu nome de domínio do CodeArtifact.

    • Substitua 111122223333 pelo ID da conta da AWS do proprietário do domínio. Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir --domain-owner. Para obter mais informações, consulte Domínios entre contas.

    • Substitua my_repo pelo nome do seu repositório do CodeArtifact.

    macOS and Linux
    export RUBYGEMS_HOST=`aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format ruby --query repositoryEndpoint --output text | sed 's:/*$::'`
    Windows

    Os comandos a seguir recuperam o endpoint do repositório, removem o / à direita e o armazenam em uma variável de ambiente.

    • Windows (usando o shell de comando padrão):

      for /f %i in ('aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format ruby --query repositoryEndpoint --output text') do set RUBYGEMS_HOST=%i set RUBYGEMS_HOST=%RUBYGEMS_HOST:~0,-1%
    • Windows PowerShell:

      $env:RUBYGEMS_HOST = (aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format ruby --query repositoryEndpoint --output text).TrimEnd("/")

    O seguinte URL é um exemplo de endpoint de repositório:

    https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/
    nota

    Para usar um endpoint de pilha dupla, use o endpoint codeartifact.region.on.aws.

  3. Para publicar gems Ruby em seu repositório, você deve se autenticar no CodeArtifact com o RubyGems, editando seu arquivo ~/.gem/credentials para incluir seu token de autenticação. Crie um diretório ~/.gem/ e um arquivo ~/.gem/credentials se o diretório ou arquivo não existir.

    macOS and Linux
    echo ":codeartifact_api_key: Bearer $CODEARTIFACT_AUTH_TOKEN" >> ~/.gem/credentials
    Windows
    • Windows (usando o shell de comando padrão):

      echo :codeartifact_api_key: Bearer %CODEARTIFACT_AUTH_TOKEN% >> %USERPROFILE%/.gem/credentials
    • Windows PowerShell:

      echo ":codeartifact_api_key: Bearer $env:CODEARTIFACT_AUTH_TOKEN" | Add-Content ~/.gem/credentials
  4. Para usar gem para instalar gems Ruby por meio do seu repositório, você deve adicionar as informações do endpoint do repositório e o token de autenticação ao seu arquivo .gemrc. Você pode adicioná-las ao arquivo global (~/.gemrc) ou ao arquivo .gemrc do seu projeto. As informações do CodeArtifact que você deve adicionar a .gemrc são uma combinação do endpoint do repositório e do token de autenticação. O formato é o seguinte:

    https://aws:${CODEARTIFACT_AUTH_TOKEN}@my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/
    • Para o token de autenticação, você pode usar a variável de ambiente CODEARTIFACT_AUTH_TOKEN definida em uma etapa anterior.

    • Para buscar o endpoint do repositório, você pode ler o valor da variável de ambiente RUBYGEMS_HOST definida anteriormente ou usar o seguinte comando get-repository-endpoint, substituindo os valores conforme necessário:

      aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format ruby --query repositoryEndpoint --output text

    Após obter o endpoint, use um editor de texto para adicionar aws:${CODEARTIFACT_AUTH_TOKEN}@ na posição apropriada. Após criar o endpoint do repositório e a string do token de autenticação, adicione-os à seção :sources: do seu arquivo .gemrc com o comando echo da seguinte forma:

    Atenção

    O CodeArtifact não é compatível com a adição de repositórios como fontes usando o comando gem sources -add. Você deve adicionar a fonte diretamente ao arquivo.

    macOS and Linux
    echo ":sources: - https://aws:${CODEARTIFACT_AUTH_TOKEN}@my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/" > ~/.gemrc
    Windows
    • Windows (usando o shell de comando padrão):

      echo ":sources: - https://aws:%CODEARTIFACT_AUTH_TOKEN%@my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/" > "%USERPROFILE%\.gemrc"
    • Windows PowerShell:

      echo ":sources: - https://aws:$env:CODEARTIFACT_AUTH_TOKEN@my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/" | Add-Content ~/.gemrc
  5. Para usar o Bundler, você deve configurar o Bundler com o URL do endpoint do repositório e o token de autenticação executando o seguinte comando bundle config:

    macOS and Linux
    bundle config $RUBYGEMS_HOST aws:$CODEARTIFACT_AUTH_TOKEN
    Windows
    • Windows (usando o shell de comando padrão):

      bundle config %RUBYGEMS_HOST% aws:%CODEARTIFACT_AUTH_TOKEN%
    • Windows PowerShell:

      bundle config $Env:RUBYGEMS_HOST aws:$Env:CODEARTIFACT_AUTH_TOKEN

Agora que o RubyGems (gem) e o Bundler (bundle) foram configurados com o seu repositório do CodeArtifact, você pode usá-los para publicar gems Ruby no repositório e consumir gems Ruby por meio dele.

Instalar gems Ruby por meio do CodeArtifact

Use os procedimentos a seguir para instalar gems Ruby por meio de um repositório do CodeArtifact com as ferramentas da CLI gem ou bundle.

Instalar gems Ruby com gem

É possível usar a CLI do RubyGems (gem) para instalar rapidamente uma versão específica de um gem Ruby por meio do repositório do CodeArtifact.

Como instalar gems Ruby por meio de um repositório do CodeArtifact com gem
  1. Caso ainda não tenha feito isso, siga as etapas em Configurar o RubyGems (gem) e o Bundler (bundle) com o CodeArtifact para configurar a CLI gem para usar o repositório do CodeArtifact com as credenciais adequadas.

    nota

    O token de autorização gerado é válido por 12 horas. Você precisará criar um novo se tiverem passado 12 horas desde a criação do token.

  2. Use o seguinte comando para instalar gems Ruby por meio do CodeArtifact:

    gem install my_ruby_gem --version 1.0.0

Instalar gems Ruby com bundle

Você pode usar a CLI do Bundler (bundle) para instalar os gems Ruby configurados em Gemfile.

Como instalar gems Ruby por meio de um repositório do CodeArtifact com bundle
  1. Caso ainda não tenha feito isso, siga as etapas em Configurar o RubyGems (gem) e o Bundler (bundle) com o CodeArtifact para configurar a CLI bundle para usar o repositório do CodeArtifact com as credenciais adequadas.

    nota

    O token de autorização gerado é válido por 12 horas. Você precisará criar um novo se tiverem passado 12 horas desde a criação do token.

  2. Adicione o URL do endpoint do repositório do CodeArtifact ao Gemfile como source para instalar gems Ruby configurados por meio do repositório do CodeArtifact e seus upstreams.

    source "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/" gem 'my_ruby_gem'
  3. Use o seguinte comando para instalar os gems Ruby conforme especificado em Gemfile:

    bundle install

Publicar gems Ruby no CodeArtifact

Use o procedimento a seguir para publicar gems Ruby em um repositório do CodeArtifact usando a CLI gem.

  1. Caso ainda não tenha feito isso, siga as etapas em Configurar o RubyGems (gem) e o Bundler (bundle) com o CodeArtifact para configurar a CLI gem para usar o repositório do CodeArtifact com as credenciais adequadas.

    nota

    O token de autorização gerado é válido por 12 horas. Você precisará criar um novo se tiverem passado 12 horas desde a criação do token.

  2. Use o comando a seguir para publicar gems Ruby em um repositório do CodeArtifact. Observe que, se você não definiu a variável de ambiente RUBYGEMS_HOST, deverá fornecer o endpoint do repositório do CodeArtifact na opção --host.

    gem push --key codeartifact_api_key my_ruby_gem-0.0.1.gem