View a markdown version of this page

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

Para usar Cargo para instalar y publicar cajas AWS CodeArtifact, debes configurarlo 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.

Configuración de Cargo con 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, 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 CodeArtifact repositorio.

Configuración manual de Cargo

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.

  • my_registrySustitúyalo por tu nombre de registro.

  • my_domainSustitúyalo por tu nombre de CodeArtifact dominio.

  • 111122223333Sustitúyelo 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 Cross-account dominios.

  • my_repoSustitúyalo por el nombre de tu CodeArtifact repositorio.

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, debes definir tu CodeArtifact repositorio como un registro en la configuración de Cargo y proporcionar las credenciales.

  • my_registrySustitúyalo por tu nombre de registro.

  • my_domainSustitúyalo por tu nombre de CodeArtifact dominio.

  • 111122223333Sustitúyelo 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 Cross-account dominios.

  • my_repoSustitúyalo por el nombre de tu CodeArtifact repositorio.

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, debes definir tu CodeArtifact repositorio como un registro en la configuración de Cargo y proporcionar las credenciales.

    • my_registrySustitúyalo por tu nombre de registro.

    • my_domainSustitúyalo por tu nombre de CodeArtifact dominio.

    • 111122223333Sustitúyelo 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 Cross-account dominios.

    • my_repoSustitúyalo por el nombre de tu CodeArtifact repositorio.

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

    • my_registrySustitúyalos por el nombre de registro tal y como se define en[registries.my_registry].

    • my_domainSustitúyalo por tu nombre de CodeArtifact dominio.

    • 111122223333Sustitúyelo 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 Cross-account dominios.

    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.

  • indexespecifica la URL del índice de su registro, que es el punto final del CodeArtifact repositorio que termina en/. 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 credential-provider configurarlo encargo:token-from-stdout, el cliente Cargo obtiene automáticamente un nuevo token de autorización al publicarlo o descargarlo desde tu CodeArtifact repositorio, por lo que no necesitas actualizar manualmente el token de autorización cada 12 horas.

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

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

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 tu CodeArtifact repositorio definido en. [registries.my_registry] Esta configuración se recomienda si necesita 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 entre 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. 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 conregistry=my_registry, el cliente de Cargo la recuperará directamente de crates.io sin comunicarse con tu repositorio. 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

Usa 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 carga
  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 el apartado cargo add de 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 el apartado cargo publish de The Cargo Book.