Conectar un repositorio de CodeArtifact a un repositorio público - 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.

Conectar un repositorio de CodeArtifact a un repositorio público

Puede añadir una conexión externa entre un repositorio de CodeArtifact y un repositorio público externo como https://npmjs.com o el repositorio central de Maven. Luego, cuando solicita un paquete del repositorio de CodeArtifact que aún no está presente en el repositorio, el paquete se puede obtener de la conexión externa. Esto permite consumir las dependencias de código abierto que utiliza su aplicación.

En CodeArtifact, la forma prevista de utilizar conexiones externas es tener un repositorio por dominio con una conexión externa a un repositorio público determinado. Por ejemplo, si quiere conectarse a npmjs.com, configure un repositorio de su dominio con una conexión externa a npmjs.com y configure todos los demás repositorios con una conexión anterior. De esta forma, todos los repositorios pueden utilizar los paquetes que ya se han obtenido de npmjs.com, en lugar de volver a buscarlos y almacenarlos.

Conectarse a un repositorio externo (consola)

Cuando utilice la consola para añadir una conexión a un repositorio externo, ocurrirá lo siguiente:

  1. Se creará un repositorio -store para el repositorio externo en su dominio CodeArtifact si aún no existe uno. Estos repositorios -store se comportan como repositorios intermedios entre su repositorio y el repositorio externo y le permiten conectarse a más de un repositorio externo.

  2. El repositorio -store correspondiente se añade de forma previa a su repositorio.

La siguiente lista contiene cada repositorio -store de CodeArtifact y el repositorio externo respectivo al que se conectan.

  1. cargo-store está conectado a crates.io.

  2. clojars-store está conectado al repositorio de Clojars.

  3. commonsware-store está conectado al repositorio de Android de CommonsWare.

  4. google-android-store está conectado a Google Android.

  5. gradle-plugins-store está conectado a los complementos de Gradle.

  6. maven-central-store está conectado al repositorio central de Maven.

  7. npm-store está conectado a npmjs.com.

  8. nuget-store está conectado a nuget.org.

  9. pypi-store está conectado a la Python Packaging Authority.

  10. rubygems-store está conectado a RubyGems.org.

Para conectarse a un repositorio externo (consola)
  1. Abra la consola de AWS CodeArtifact en https://console.aws.amazon.com/codesuite/codeartifact/home.

  2. En el panel de navegación, elija Dominios y, a continuación, elija el nombre de dominio que contiene el repositorio.

  3. Elija el nombre de su repositorio.

  4. Seleccione Editar.

  5. En repositorios ascendentes, elija Asociar un repositorio ascendente y añada el repositorio -store correspondiente que esté conectado como un repositorio ascendente.

  6. Seleccione Actualizar repositorio.

Una vez que el repositorio -store se haya agregado como repositorio principal, los administradores de paquetes conectados a su repositorio de CodeArtifact pueden recuperar los paquetes del repositorio externo respectivo.

Conectarse a un repositorio externo (CLI)

Puede usar la AWS CLI para conectar su repositorio de CodeArtifact a un repositorio externo añadiendo una conexión externa directamente al repositorio. Esto permitirá a los usuarios conectados al repositorio de CodeArtifact, o a cualquiera de sus repositorios posteriores, obtener paquetes del repositorio externo configurado. Cada repositorio de CodeArtifact solo puede tener una conexión externa.

Se recomienda tener un repositorio por dominio con una conexión externa a un repositorio público determinado. Para conectar otros repositorios al repositorio público, agregue el repositorio con la conexión externa como ascendente para ellos. Si usted u otra persona en su dominio ya ha configurado conexiones externas en la consola, es probable que su dominio ya tenga un repositorio -store con una conexión externa al repositorio público al que desea conectarse. Para obtener más información sobre los repositorios -store y la conexión con la consola, consulte Conectarse a un repositorio externo (consola).

Para agregar una conexión externa a un repositorio de CodeArtifact (CLI)
  • Utilice associate-external-connection para agregar una conexión externa. El siguiente ejemplo conecta un repositorio al registro público de npm, npmjs.com. Para ver una lista de los repositorios externos admitidos, consulte Repositorios de conexiones externas compatibles.

    aws codeartifact associate-external-connection --external-connection public:npmjs \ --domain my_domain --domain-owner 111122223333 --repository my_repo

    Ejemplo de código de salida:

    { "repository": { "name": my_repo "administratorAccount": "123456789012", "domainName": "my_domain", "domainOwner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my_domain/my_repo", "description": "A description of my_repo", "upstreams": [], "externalConnections": [ { "externalConnectionName": "public:npmjs", "packageFormat": "npm", "status": "AVAILABLE" } ] } }

Tras añadir una conexión externa, consulte Solicitud de paquetes desde conexiones externas para obtener información sobre cómo solicitar paquetes desde un repositorio externo con una conexión externa.

Repositorios de conexiones externas compatibles

CodeArtifact admite una conexión externa a los siguientes repositorios públicos. Para usar la CLI de CodeArtifact para especificar una conexión externa, utilice el valor de la columna Nombre para el parámetro --external-connection cuando ejecute el comando associate-external-connection.

Tipo de repositorio Descripción Nombre
Maven Repositorio de Clojars public:maven-clojars
Maven Repositorio de CommonsWare de Android public:maven-commonsware
Maven Repositorio de Google de Android public:maven-googleandroid
Maven Repositorio de complementos de Gradle public:maven-gradleplugins
Maven Central de Maven public:maven-central
npm Registro público de npm public:npmjs
NuGet Galería NuGet public:nuget-org
Python Índice de paquetes de Python public:pypi
Ruby RubyGems.org public:ruby-gems-org
Rust Crates.io public:crates-io

Eliminar una conexión externa (CLI)

Para eliminar una conexión externa que se agregó mediante el comando associate-external-connection en AWS CLI, utilice disassociate-external-connection.

aws codeartifact disassociate-external-connection --external-connection public:npmjs \ --domain my_domain --domain-owner 111122223333 --repository my_repo

Ejemplo de código de salida:

{ "repository": { "name": my_repo "administratorAccount": "123456789012", "domainName": "my_domain", "domainOwner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my_domain/my_repo", "description": "A description of my_repo", "upstreams": [], "externalConnections": [] } }