Configure RubyGems e use o Bundler com 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á.

Configure RubyGems e use o Bundler com CodeArtifact

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

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

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.

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

  3. Escolha Exibir instruções de conexão.

  4. Escolha seu sistema operacional.

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

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

Configurar RubyGems e agrupar 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 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.

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

    • Substitua 111122223333 pela 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 ter 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
    • Janelas 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 seu CodeArtifact repositório e armazená-lo na variável de ambiente. RUBYGEMS_HOST A gem CLI 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 RUBYGEMS_HOST ambiente, você pode fornecer ao endpoint do repositório a --host opção ao usar o gem push comando.

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

    • Substitua 111122223333 pela 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 ter mais informações, consulte Domínios entre contas.

    • Substitua my_repo pelo nome do seu CodeArtifact 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, cortam o final e os 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 URL a seguir é um exemplo de endpoint do repositório:

    https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/
  3. 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 ~/.gem/ diretório e um ~/.gem/credentials arquivo 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
  4. Para usar gem para instalar gems Ruby 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á-lo ao arquivo global (~/.gemrc) ou ao seu .gemrc arquivo de 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. Ele está formatado da seguinte forma:

    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 CODEARTIFACT_AUTH_TOKEN ambiente que foi definida em uma etapa anterior.

    • Para buscar o endpoint do repositório, você pode ler o valor da variável de RUBYGEMS_HOST ambiente que foi definida anteriormente ou usar o get-repository-endpoint comando a seguir, 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

    Depois de ter o endpoint, use um editor de texto para adicioná-lo aws:${CODEARTIFACT_AUTH_TOKEN}@ na posição apropriada. Depois de criar o endpoint do repositório e a string do token de autenticação, adicione-os à :sources: seção do seu .gemrc arquivo com o echo comando 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
  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%
    • 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

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

Instale gems Ruby com gem

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

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

    gem install my_ruby_gem --version 1.0.0

Instale gems Ruby com bundle

Você pode usar a CLI do Bundler (bundle) para instalar os gems Ruby que estão configurados no seu. 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 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.

  2. 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'
  3. Use o comando a seguir para instalar as gemas Ruby conforme especificado em seu: Gemfile

    bundle install

Publicando gemas Ruby em CodeArtifact

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

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