Configura y usa 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.

Configura y usa Cargo con CodeArtifact

Puedes usar Cargo para publicar y descargar cajas de CodeArtifact los repositorios o para buscarlas en crates.io, el registro de cajas de la comunidad de Rust. En este tema se describe cómo configurar Cargo para que se autentique en un repositorio y lo use. CodeArtifact

Configura Cargo con CodeArtifact

Si quieres usar Cargo para instalar y publicar cajas AWS CodeArtifact, primero tendrás que configurarlas con la información de tu CodeArtifact repositorio. Siga los pasos de uno de los siguientes procedimientos para configurar Cargo con la información y las credenciales CodeArtifact del punto final de su repositorio.

Configura Cargo siguiendo las instrucciones de la consola

Puedes usar las instrucciones de configuración de la consola para conectar Cargo a tu CodeArtifact repositorio. Las instrucciones de la consola proporcionan una configuración de Cargo personalizada para tu CodeArtifact repositorio. Puedes usar esta configuración personalizada para configurar Cargo sin necesidad de buscar y completar tu CodeArtifact información.

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

  2. En el panel de navegación, selecciona Repositorios y, a continuación, elige un repositorio para conectarte a Cargo.

  3. Selecciona Ver instrucciones de conexión.

  4. Elige tu sistema operativo.

  5. Elige Cargo.

  6. Sigue las instrucciones generadas para conectar Cargo a tu CodeArtifact repositorio.

Configura Cargo manualmente

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

macOS and Linux

Para configurar Cargo con CodeArtifact, debes definir tu CodeArtifact repositorio como un registro en la configuración de Cargo y proporcionar las credenciales.

  • Sustituya my_registry por su nombre de registro.

  • Sustituya my_domain por su nombre de dominio. CodeArtifact

  • Sustituya 111122223333 por el ID de AWS cuenta 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.

  • Sustituye my_repo por el nombre de tu repositorio. CodeArtifact

Copie la configuración para publicar y descargar los paquetes de Cargo en su repositorio y guárdela en el ~/.cargo/config.toml archivo para una configuración a nivel de sistema o .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 su CodeArtifact repositorio como un registro en la configuración de Cargo y proporcionar las credenciales.

  • Sustituya my_registry por su nombre de registro.

  • Sustituya my_domain por su nombre de dominio. CodeArtifact

  • Sustituya 111122223333 por el ID de AWS cuenta 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.

  • Sustituye my_repo por el nombre de tu repositorio. CodeArtifact

Copie la configuración para descargar únicamente los paquetes de Cargo de su repositorio y guárdela en el %USERPROFILE%\.cargo\config.toml archivo para una configuración a nivel de sistema o .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 su CodeArtifact repositorio como un registro en la configuración de Cargo y proporcionar las credenciales.

    • Sustituya my_registry por su nombre de registro.

    • Sustituya my_domain por su nombre de dominio. CodeArtifact

    • Sustituya 111122223333 por el ID de AWS cuenta 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.

    • Sustituye my_repo por el nombre de tu repositorio. CodeArtifact

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

    Se recomienda utilizar el proveedor de credencialescargo:token, que utiliza las credenciales almacenadas en el archivo. ~/.cargo/credentials.toml cargo publishSi lo usas, es posible que se produzca un error cargo:token-from-stdout porque el cliente de Cargo no recorta correctamente el token de autorización durante cargo publish el proceso.

    [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. Para publicar paquetes de Cargo en tu repositorio con Windows, debes usar el CodeArtifact get-authorization-token comando y el login comando Cargo para obtener un token de autorización y tus credenciales.

    • Sustituya my_registry por su nombre de registro tal y como se define en. [registries.my_registry]

    • Sustituya my_domain por su nombre de dominio. CodeArtifact

    • Sustituya 111122223333 por el ID de AWS cuenta 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.

En la [registries.my_registry] sección del ejemplo anterior se define un registro con información my_registry y se proporciona dicha informaciónindex. credential-provider

  • indexespecifica la URL del índice de su registro, que es el punto final del CodeArtifact repositorio que termina en/. El sparse+ prefijo es obligatorio para los registros que no son repositorios de Git.

  • credential-providerespecifica el proveedor de credenciales para el registro en cuestión. Si credential-provider no está establecido, se registry.global-credential-providers utilizarán los proveedores incluidos. Al credential-provider configurarlocargo:token-from-stdout, el cliente de Cargo obtendrá el nuevo token de autorización automáticamente al publicarlo o descargarlo desde tu CodeArtifact repositorio, por lo que no tendrás que actualizar manualmente el token de autorización cada 12 horas.

La [registry] sección define el registro predeterminado que se utiliza.

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

La [source.crates-io] sección define el registro predeterminado que se utiliza cuando no se especifica ninguno.

  • replace-with = "my_registry"reemplaza el registro público, crates.io, por tu CodeArtifact repositorio definido en. [registries.my_registry] Se recomienda esta configuración si necesitas solicitar paquetes desde una conexión externa, como crates.io.

    Para aprovechar todas las ventajas CodeArtifact, como el control del origen de los paquetes, que evita los ataques de confusión de dependencias, se recomienda sustituir el código fuente. Al sustituir el código fuente CodeArtifact , envía todas las solicitudes a la conexión externa y copia el paquete de la conexión externa al repositorio. Sin reemplazar la fuente, el cliente de Cargo recuperará el paquete directamente en función de la configuración del Cargo.toml archivo de su proyecto. Si una dependencia no está marcada conregistry=my_registry, el cliente de Cargo la recuperará directamente de crates.io sin comunicarse con tu repositorio. CodeArtifact

    nota

    Si empiezas a usar el reemplazo de código fuente y luego actualizas tu archivo de configuración para no usar el reemplazo de código fuente, es posible que se produzcan errores. El escenario opuesto también puede provocar errores. Por lo tanto, se recomienda evitar cambiar la configuración del proyecto.

Instalación de cajas de carga

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

Instale las cajas de carga desde CodeArtifact

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

Para instalar cajas de carga desde un CodeArtifact repositorio con cargo
  1. Si no lo ha hecho, siga los pasos que se indican Configura y usa Cargo con CodeArtifact para configurar la cargo CLI para que utilice el CodeArtifact repositorio con las credenciales adecuadas.

  2. Usa el siguiente comando para instalar las cajas de carga desde CodeArtifact:

    cargo add my_cargo_package@1.0.0

    Para obtener más información, consulte Cargo Add en The Cargo Book.

Publicar cajas de carga en CodeArtifact

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

  1. Si no lo ha hecho, siga los pasos que se indican Configura y usa Cargo con CodeArtifact para configurar la cargo CLI para que utilice el CodeArtifact repositorio con las credenciales adecuadas.

  2. Usa el siguiente comando para publicar las cajas de carga en un CodeArtifact repositorio:

    cargo publish

    Para obtener más información, consulte la publicación de carga en The Cargo Book.