Configuración y uso de Cargo 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 Cargo con CodeArtifact

Cargo puede utilizarse para publicar y descargar cajas desde repositorios de CodeArtifact o para obtener cajas de crates.io, el registro de cajas de la comunidad de Rust. En este tema, se describe cómo configurar Cargo para que se autentique y use un repositorio de CodeArtifact.

Configuración de Cargo con CodeArtifact

Para usar Cargo a fin de instalar y publicar cajas desde AWS CodeArtifact, primero tiene que configurarlas con la información del repositorio de CodeArtifact. Siga los pasos de alguno de los siguientes procedimientos para configurar Cargo con la información y las credenciales del punto de conexión del repositorio de CodeArtifact.

Configuración de Cargo con las instrucciones de la consola

Puede usar las instrucciones de configuración de la consola para conectar Cargo a su repositorio de CodeArtifact. Las instrucciones de la consola brindan una configuración de Cargo personalizada para el repositorio de CodeArtifact. Puede emplear esta configuración personalizada para configurar Cargo sin tener que buscar ni 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, seleccione Repositorios y, después, elija uno para conectarlo a Cargo.

  3. Seleccione Ver instrucciones de conexión.

  4. Elija su sistema operativo.

  5. Seleccione Cargo.

  6. Siga las instrucciones generadas para conectar Cargo a su repositorio de CodeArtifact.

Configuración manual de Cargo

Si no puede o no quiere usar las instrucciones de configuración de la consola, puede recurrir a las siguientes instrucciones para conectar Cargo al repositorio de CodeArtifact manualmente.

macOS and Linux

Para configurar Cargo con CodeArtifact, debe definir el repositorio de CodeArtifact como registro en la configuración de Cargo y facilitar las credenciales.

  • Sustituya my_registry por el nombre del registro en cuestión.

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

Copie la configuración para publicar y descargar los paquetes Cargo en el repositorio y guárdela en el archivo ~/.cargo/config.toml para una configuración a nivel de sistema o en .cargo/config.toml para una configuración a nivel de proyecto:

[registries.my_registry] index = "sparse+https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/cargo/my_repo/" credential-provider = "cargo:token-from-stdout aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --region us-west-2 --query authorizationToken --output text" [registry] default = "my_registry" [source.crates-io] replace-with = "my_registry"
Windows: Download packages only

Para configurar Cargo con CodeArtifact, debe definir el repositorio de CodeArtifact como registro en la configuración de Cargo y facilitar las credenciales.

  • Sustituya my_registry por el nombre del registro en cuestión.

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

Copie la configuración para descargar los paquetes Cargo desde el repositorio y guárdela en el archivo %USERPROFILE%\.cargo\config.toml para una configuración a nivel de sistema o en .cargo\config.toml para una configuración a nivel de proyecto:

[registries.my_registry] index = "sparse+https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/cargo/my_repo/" credential-provider = "cargo:token-from-stdout aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --region us-west-2 --query authorizationToken --output text" [registry] default = "my_registry" [source.crates-io] replace-with = "my_registry"
Windows: Publish and download packages
  1. Para configurar Cargo con CodeArtifact, debe definir el repositorio de CodeArtifact como registro en la configuración de Cargo y facilitar las credenciales.

    • Sustituya my_registry por el nombre del registro en cuestión.

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

    Copie la configuración para publicar y descargar los paquetes Cargo al repositorio y guárdela en el archivo %USERPROFILE%\.cargo\config.toml para una configuración a nivel de sistema o en .cargo\config.toml para una configuración a nivel de proyecto.

    Se recomienda utilizar el proveedor de credenciales cargo:token, que utiliza las credenciales almacenadas en el archivo ~/.cargo/credentials.toml. Si usa cargo:token-from-stdout, es probable que ocurran errores durante cargo publish. El motivo es que el cliente Cargo no recorta el token de autorización correctamente durante cargo publish.

    [registries.my_registry] index = "sparse+https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/cargo/my_repo/" credential-provider = "cargo:token" [registry] default = "my_registry" [source.crates-io] replace-with = "my_registry"
  2. Si quiere publicar paquetes Cargo en el repositorio con Windows, debe usar el comando get-authorization-token de CodeArtifact y el comando login de Cargo para obtener un token de autorización y las credenciales.

    • Sustituya my_registry por el nombre del registro definido en [registries.my_registry].

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

    aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --region us-west-2 --query authorizationToken --output text | cargo login --registry my_registry
    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.

La sección [registries.my_registry] del ejemplo anterior define un registro con my_registry y brinda información sobre index y credential-provider.

  • index especifica la URL del índice del registro, que es el punto de conexión del repositorio de CodeArtifact que termina por /. El prefijo sparse+ es obligatorio para los registros que no son repositorios Git.

    nota

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

  • credential-provider especifica el proveedor de credenciales para el registro en cuestión. Si no se ha definido credential-provider, se utilizarán los proveedores incluidos en registry.global-credential-providers. Al configurar credential-provider como cargo:token-from-stdout, el cliente Cargo obtendrá el token de autorización nuevo automáticamente cuando se publique o se descargue desde el repositorio de CodeArtifact. Por tanto, no tendrá que actualizar manualmente el token de autorización cada 12 horas.

La sección [registry] define el registro predeterminado utilizado.

  • default especifica el nombre del registro definido en [registries.my_registry], que se utilizará de forma predeterminada al publicar o descargar desde el repositorio de CodeArtifact.

La sección [source.crates-io] define el registro predeterminado utilizado cuando no se ha especificado ninguno.

  • replace-with = "my_registry" reemplaza el registro público (crates.io) por el repositorio de CodeArtifact definido en [registries.my_registry]. Esta configuración se recomienda si necesita solicitar paquetes desde una conexión externa, como crates.io.

    Para sacar el máximo partido a las funciones de CodeArtifact, como el control del origen de los paquetes que evita los ataques de confusión de dependencias, se recomienda utilizar el reemplazo del origen. Con el reemplazo del origen, CodeArtifact actúa como proxy para todas las solicitudes a la conexión externa y copia el paquete de la conexión externa a su repositorio. Si no se reemplaza el origen, el cliente Cargo recupera el paquete directamente en función de la configuración del archivo Cargo.toml del proyecto. Si una dependencia no está marcada con registry=my_registry, el cliente Cargo la recuperará directamente de crates.io sin comunicarse con el repositorio de CodeArtifact.

    nota

    Es posible que se produzcan errores si empieza a usar el reemplazo del origen y, después, actualiza el archivo de configuración para que no se utilice esta opción. La situación opuesta también puede causar errores. Por lo tanto, se recomienda evitar modificar la configuración del proyecto.

Instalación de cajas de Cargo

Utilice los siguientes procedimientos para instalar cajas de Cargo desde un repositorio de CodeArtifact o desde crates.io.

Instalación de cajas de Cargo desde CodeArtifact

Puede usar la CLI de Cargo (cargo) para instalar rápidamente una versión específica de una caja de Cargo desde su repositorio de CodeArtifact.

Cómo instalar cajas de Cargo desde un repositorio de CodeArtifact con cargo
  1. Si no lo ha hecho, siga los pasos de Configuración y uso de Cargo con CodeArtifact para configurar la CLI de cargo y usar su repositorio de CodeArtifact con las credenciales adecuadas.

  2. Utilice el siguiente comando para instalar cajas de Cargo desde CodeArtifact:

    cargo add my_cargo_package@1.0.0

    Para obtener más información, consulte el apartado cargo add de The Cargo Book.

Publicación de cajas de Cargo en CodeArtifact

Utilice el siguiente procedimiento para publicar cajas de Cargo en un repositorio de CodeArtifact con la CLI de cargo.

  1. Si no lo ha hecho, siga los pasos de Configuración y uso de Cargo con CodeArtifact para configurar la CLI de cargo y usar su repositorio de CodeArtifact con las credenciales adecuadas.

  2. Utilice el siguiente comando para publicar cajas de Cargo en un repositorio de CodeArtifact:

    cargo publish

    Para obtener más información, consulte el apartado cargo publish de The Cargo Book.