

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á.

# Configure RubyGems e use o Bundler com CodeArtifact
<a name="configure-use-rubygems-bundler"></a>

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

## Configure RubyGems (`gem`) e Bundler (`bundle`) com CodeArtifact
<a name="configure-ruby-gem"></a>

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

### Configurar RubyGems e agrupar usando as instruções do console
<a name="configure-ruby-gem-console"></a>

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

1. Abra o AWS CodeArtifact console em [https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home).

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

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

1. Selecione o seu sistema operacional.

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

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

### Configurar RubyGems e agrupar manualmente
<a name="configure-ruby-gem-manual"></a>

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 se conectar manualmente aos gerenciadores de pacotes Ruby ao seu CodeArtifact repositório. 

1. Em uma linha de comando, use o comando a seguir para buscar um token de CodeArtifact autorização e armazená-lo em uma variável de ambiente.
   + {{my\_domain}}Substitua pelo seu nome de CodeArtifact domínio.
   + {{111122223333}}Substitua pelo ID da AWS conta 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 [Cross-account domínios](domain-overview.md#domain-overview-cross-account).

------
#### [ 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
     ```
   + Janelas PowerShell:

     ```
     $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain {{my_domain}} --domain-owner {{111122223333}} --query authorizationToken --output text
     ```

------

1. Para publicar gems Ruby em seu repositório, use o comando a seguir para buscar o endpoint do seu CodeArtifact repositório e armazená-lo na variável de ambiente. `RUBYGEMS_HOST` A CLI `gem` usa essa variável de ambiente para definir 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`.
   + {{my\_domain}}Substitua pelo seu nome de CodeArtifact domínio.
   + {{111122223333}}Substitua pelo ID da AWS conta 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 [Cross-account domínios](domain-overview.md#domain-overview-cross-account).
   + {{my\_repo}}Substitua pelo nome CodeArtifact do seu repositório.

------
#### [ 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%
     ```
   + Janelas 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`.

1. Para publicar gems Ruby em seu repositório, você deve se autenticar CodeArtifact com RubyGems editando seu `~/.gem/credentials` arquivo 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
     ```
   + Janelas PowerShell:

     ```
     echo ":codeartifact_api_key: Bearer $env:CODEARTIFACT_AUTH_TOKEN" | Add-Content ~/.gem/credentials
     ```

------

1. Para usar `gem` para instalar gems Ruby por meio do seu repositório, é necessário 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 CodeArtifact informações que você deve adicionar ao `.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}}/
   ```
   + Você pode usar a variável de ambiente `CODEARTIFACT_AUTH_TOKEN` definida em uma etapa anterior para o token de autenticação.
   + Para buscar o endpoint do repositório, você poderá 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**  
CodeArtifact não suporta a adição de repositórios como fontes usando o `gem sources -add` comando. 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"
     ```
   + Janelas 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
     ```

------

1. 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` ao usar o Bundler:

------
#### [ 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%
     ```
   + Janelas PowerShell:

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

------

Agora que você configurou RubyGems (`gem`) e Bundler (`bundle`) com seu CodeArtifact repositório, você pode usá-los para publicar e consumir gems Ruby de e para ele.

## Instalando gemas Ruby a partir de CodeArtifact
<a name="install-ruby-gems"></a>

Use os procedimentos a seguir para instalar gems Ruby a partir de um CodeArtifact repositório com as ferramentas ou `gem` CLI`bundle`.

### Instalar gems Ruby com `gem`
<a name="install-ruby-gems-gem"></a>

Você pode usar a CLI RubyGems (`gem`) para instalar rapidamente uma versão específica de uma gem do Ruby a partir do seu repositório. CodeArtifact 

**Para instalar gems Ruby a partir de um repositório com CodeArtifact `gem`**

1. Caso contrário, siga as etapas [Configure RubyGems (`gem`) e Bundler (`bundle`) com CodeArtifact](#configure-ruby-gem) para configurar a `gem` CLI para usar seu CodeArtifact repositório 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.

1. Use o comando a seguir para instalar gems Ruby a partir de: CodeArtifact

   ```
   gem install {{my_ruby_gem}} --version {{1.0.0}}
   ```

### Instalar gems Ruby com `bundle`
<a name="install-ruby-gems-bundle"></a>

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

**Para instalar gems Ruby a partir de um repositório com CodeArtifact `bundle`**

1. Caso contrário, siga as etapas [Configure RubyGems (`gem`) e Bundler (`bundle`) com CodeArtifact](#configure-ruby-gem) para configurar a `bundle` CLI para usar seu CodeArtifact repositório 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.

1. Adicione a URL CodeArtifact do endpoint do repositório ao seu `Gemfile` as `source` para instalar gems Ruby configuradas do seu CodeArtifact repositório e de seus upstreams.

   ```
   source "https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/ruby/{{my_repo}}/"
                   
   gem 'my_ruby_gem'
   ```

1. Use o seguinte comando para instalar os gems Ruby conforme especificado em `Gemfile`:

   ```
   bundle install
   ```

## Publicando gemas Ruby em CodeArtifact
<a name="publish-ruby-gems-gem"></a>

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

1. Caso contrário, siga as etapas [Configure RubyGems (`gem`) e Bundler (`bundle`) com CodeArtifact](#configure-ruby-gem) para configurar a `gem` CLI para usar seu CodeArtifact repositório 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.

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

   ```
   gem push --key codeartifact_api_key {{my_ruby_gem-0.0.1.gem}}
   ```