Configuración y uso de RubyGems y Bundler con CodeArtifact - CodeArtifact

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración y uso de RubyGems y Bundler con CodeArtifact

Tras crear un repositorio en CodeArtifact, puede usar RubyGems (gem) y Bundler (bundle) para instalar y publicar gemas. En este tema se describe cómo configurar los administradores de paquetes para que se autentiquen y usen un repositorio de CodeArtifact.

Configuración de RubyGems (gem) y Bundler (bundle) con CodeArtifact

Para usar RubyGems (gem) o Bundler (bundle) con el objetivo de publicar o consumir gemas desde AWS CodeArtifact, primero tiene que configurarlas con la información del repositorio de CodeArtifact, incluidas las credenciales para acceder a él. Siga los pasos de alguno de los siguientes procedimientos para configurar las herramientas gem y bundle de la CLI con la información y las credenciales del punto de conexión del repositorio de CodeArtifact.

Configuración de RubyGems y Bundler siguiendo las instrucciones de la consola

Puede usar las instrucciones de configuración de la consola para conectar los administradores de paquetes de Ruby a su repositorio de CodeArtifact. Las instrucciones de la consola proporcionan comandos personalizados que puede ejecutar para configurar los administradores de paquetes sin tener que buscar e introducir la información de CodeArtifact.

  1. Abra la consola de AWS CodeArtifact en https://console.aws.amazon.com/codesuite/codeartifact/home.

  2. En el panel de navegación, elija Repositorios y luego elija el nombre del que desee utilizar para instalar o insertar gemas de Ruby.

  3. Seleccione Ver instrucciones de conexión.

  4. Elija su sistema operativo.

  5. Elija el cliente administrador de paquetes Ruby que desee configurar con el repositorio de CodeArtifact.

  6. Siga las instrucciones generadas a fin de configurar el cliente administrador de paquetes para instalar gemas de Ruby desde el repositorio o instalarlas en este.

Configuración manual de RubyGems y Bundler

Si no puede o no quiere usar las instrucciones de configuración de la consola, puede usar las siguientes instrucciones para conectar los administradores de paquetes de Ruby al repositorio de CodeArtifact manualmente.

  1. En una línea de comandos, utilice el siguiente comando para obtener un token de autorización de CodeArtifact y almacenarlo en una variable de entorno.

    • Sustituya my_domain por su nombre de dominio de CodeArtifact.

    • Sustituya 111122223333 por el ID de la cuenta de AWS del propietario del dominio. Si va a acceder a un repositorio de un dominio de su propiedad, no tiene que incluir --domain-owner. Para obtener más información, consulte Dominios entre cuentas.

    macOS and Linux
    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
    Windows
    • Windows (mediante el intérprete de comandos predeterminado):

      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. Si quiere publicar gemas de Ruby en el repositorio, use el siguiente comando para obtener el punto de conexión del repositorio de CodeArtifact y almacenarlo en la variable de entorno RUBYGEMS_HOST. La CLI gem utiliza esta variable de entorno para determinar dónde se publican las gemas.

    nota

    Como alternativa, en lugar de usar la variable de entorno RUBYGEMS_HOST, puede facilitar el punto de conexión del repositorio con la opción --host al utilizar el comando gem push.

    • Sustituya my_domain por su nombre de dominio de CodeArtifact.

    • Sustituya 111122223333 por el ID de la cuenta de AWS del propietario del dominio. Si va a acceder a un repositorio de un dominio de su propiedad, no tiene que incluir --domain-owner. Para obtener más información, consulte Dominios entre cuentas.

    • Sustituya my_repo por el nombre de su repositorio de 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

    Los siguientes comandos recuperan el punto de conexión del repositorio, recortan el símbolo / final y, a continuación, lo almacenan en una variable de entorno.

    • Windows (mediante el intérprete de comandos predeterminado):

      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("/")

    La siguiente URL es un punto de conexión de repositorio de ejemplo:

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

    Si quiere utilizar un punto de conexión de pila doble, use el punto de conexión codeartifact.region.on.aws.

  3. Para publicar gemas de Ruby en el repositorio, tiene que autenticarse en CodeArtifact con RubyGems editando el archivo ~/.gem/credentials para incluir su token de autenticación. Cree un directorio ~/.gem/ y un archivo ~/.gem/credentials si el directorio o el archivo no existen.

    macOS and Linux
    echo ":codeartifact_api_key: Bearer $CODEARTIFACT_AUTH_TOKEN" >> ~/.gem/credentials
    Windows
    • Windows (mediante el intérprete de comandos predeterminado):

      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 poder usar gem con la intención de instalar gemas de Ruby desde su repositorio, debe añadir la información del punto de conexión del repositorio y el token de autenticación al archivo .gemrc. Puede añadirlos al archivo global (~/.gemrc) o al archivo .gemrc de su proyecto. La información de CodeArtifact que debe añadir a .gemrc es una combinación de datos del punto de conexión del repositorio y del token de autenticación. Su formato es el siguiente:

    https://aws:${CODEARTIFACT_AUTH_TOKEN}@my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/
    • Para el token de autenticación, puede usar la variable de entorno CODEARTIFACT_AUTH_TOKEN que se configuró en un paso anterior.

    • Para obtener el punto de conexión del repositorio, puede leer el valor de la variable de entorno RUBYGEMS_HOST que se configuró antes, o bien puede usar el comando get-repository-endpoint siguiente y sustituir los valores según sea necesario:

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

    Una vez que tenga el punto de conexión, use un editor de texto para añadir aws:${CODEARTIFACT_AUTH_TOKEN}@ en la posición adecuada. Cuando tenga creados el punto de conexión del repositorio y la cadena del token de autenticación, agréguelos a la sección :sources: del archivo .gemrc con el comando echo de la siguiente manera:

    aviso

    CodeArtifact no admite la adición de repositorios como fuente u origen mediante el comando gem sources -add. Debe añadir el origen directamente al archivo.

    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 (mediante el intérprete de comandos predeterminado):

      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 Bundler, debe configurarlo con la URL del punto de conexión del repositorio y el token de autenticación ejecutando el comando bundle config siguiente:

    macOS and Linux
    bundle config $RUBYGEMS_HOST aws:$CODEARTIFACT_AUTH_TOKEN
    Windows
    • Windows (mediante el intérprete de comandos predeterminado):

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

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

Ahora que ha configurado RubyGems (gem) y Bundler (bundle) con su repositorio de CodeArtifact, puede usarlos para publicar y consumir gemas de Ruby desde él y en él.

Instalación de gemas de Ruby desde CodeArtifact

Utilice los siguientes procedimientos para instalar gemas de Ruby desde un repositorio de CodeArtifact con las herramientas CLI de gem o bundle.

Instalación de gemas de Ruby con gem

Puede usar la CLI de RubyGems (gem) para instalar rápidamente una versión específica de una gema de Ruby desde su repositorio de CodeArtifact.

Cómo instalar gemas de Ruby desde un repositorio de CodeArtifact con gem
  1. Si no lo ha hecho, siga los pasos de Configuración de RubyGems (gem) y Bundler (bundle) con CodeArtifact para configurar la CLI de gem y usar su repositorio de CodeArtifact con las credenciales adecuadas.

    nota

    El token de autorización generado es válido durante 12 horas. Deberá crear uno nuevo si han pasado 12 horas desde que se creó el token.

  2. Utilice el siguiente comando para instalar gemas de Ruby desde CodeArtifact:

    gem install my_ruby_gem --version 1.0.0

Instalación de gemas de Ruby con bundle

Puede usar la CLI de Bundler (bundle) para instalar las gemas de Ruby que están configuradas en su archivo Gemfile.

Cómo instalar gemas de Ruby desde un repositorio de CodeArtifact con bundle
  1. Si no lo ha hecho, siga los pasos de Configuración de RubyGems (gem) y Bundler (bundle) con CodeArtifact para configurar la CLI de bundle y usar su repositorio de CodeArtifact con las credenciales adecuadas.

    nota

    El token de autorización generado es válido durante 12 horas. Deberá crear uno nuevo si han pasado 12 horas desde que se creó el token.

  2. Agrega la URL del punto de conexión del repositorio de CodeArtifact al archivo Gemfile como source para instalar gemas de Ruby configuradas desde su repositorio de CodeArtifact y sus fuentes de distribución.

    source "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/ruby/my_repo/" gem 'my_ruby_gem'
  3. Ejecute el siguiente comando para instalar las gemas de Ruby tal y como se especifica en el archivo Gemfile:

    bundle install

Publicación de gemas de Ruby en CodeArtifact

Utilice el siguiente procedimiento para publicar gemas de Ruby en un repositorio de CodeArtifact con la CLI de gem.

  1. Si no lo ha hecho, siga los pasos de Configuración de RubyGems (gem) y Bundler (bundle) con CodeArtifact para configurar la CLI de gem y usar su repositorio de CodeArtifact con las credenciales adecuadas.

    nota

    El token de autorización generado es válido durante 12 horas. Deberá crear uno nuevo si han pasado 12 horas desde que se creó el token.

  2. Utilice el siguiente comando para publicar gemas de Ruby en un repositorio de CodeArtifact. Tenga en cuenta que si no configuró la variable de entorno RUBYGEMS_HOST, debe proporcionar el punto de conexión del repositorio de CodeArtifact en la opción --host.

    gem push --key codeartifact_api_key my_ruby_gem-0.0.1.gem