

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.

# ¿Qué es AWS CodeArtifact?
<a name="welcome"></a>

AWS CodeArtifact es un servicio de repositorio de artefactos gestionado, seguro y altamente escalable que ayuda a las organizaciones a almacenar y compartir paquetes de software para el desarrollo de aplicaciones. Puede usarlo CodeArtifact con herramientas de compilación y administradores de paquetes populares, como NuGet CLI, Maven, Gradle, npm, yarn, pip y twine. CodeArtifact ayuda a reducir la necesidad de administrar su propio sistema de almacenamiento de artefactos o de preocuparse por escalar su infraestructura. No hay límites en cuanto al número ni al tamaño total de los paquetes que puede almacenar en un CodeArtifact repositorio.

Puedes crear una conexión entre tu CodeArtifact repositorio privado y un repositorio público externo, como npmjs.com o Maven Central. CodeArtifact a continuación, extraerá y almacenará los paquetes a pedido del repositorio público cuando los solicite un administrador de paquetes. Esto hace que sea más cómodo consumir las dependencias de código abierto que utiliza su aplicación y ayuda a garantizar que estén siempre disponibles para su compilación y desarrollo. También puedes publicar paquetes privados en un CodeArtifact repositorio. Esto le ayuda a compartir componentes de software propietario entre múltiples aplicaciones y equipos de desarrollo de su organización.

 Para obtener más información, consulte [AWS CodeArtifact](https://aws.amazon.com/codeartifact/).

## ¿Cómo CodeArtifact funciona?
<a name="codeartifact-how-does-it-work"></a>

CodeArtifact almacena paquetes de software en repositorios. Los repositorios son políglotas: un único repositorio puede contener paquetes de cualquier tipo compatible. Cada CodeArtifact repositorio es miembro de un único CodeArtifact dominio. Le recomendamos que utilice un dominio de producción para su organización con uno o más repositorios. Por ejemplo, puede utilizar cada repositorio para un equipo de desarrollo diferente. De este modo, los paquetes de sus repositorios se pueden descubrir y compartir entre sus equipos de desarrollo. 

Para añadir paquetes a un repositorio, configure un administrador de paquetes como npm o Maven para usar el punto de conexión (URL) del repositorio. A continuación, puede usar el administrador de paquetes para publicar paquetes en el repositorio. También puedes importar paquetes de código abierto a un repositorio configurándolo con una conexión externa a un repositorio público como npmjs, NuGet Gallery, Maven Central o PyPI. Para obtener más información, consulte [Conectar un CodeArtifact repositorio a un repositorio público](external-connection.md). 

 Puede hacer que los paquetes de un repositorio estén disponibles para otro repositorio del mismo dominio. Para ello, configure un repositorio como un repositorio ascendente del otro. Todas las versiones de paquetes disponibles en el repositorio ascendente también están disponibles en el repositorio descendente. Además, todos los paquetes que están disponibles en el repositorio ascendente a través de una conexión externa a un repositorio público están disponibles en el repositorio descendente. Para obtener más información, consulte [Trabajar con repositorios ascendentes en CodeArtifact](repos-upstream.md). 

CodeArtifact requiere que los usuarios se autentiquen en el servicio para poder publicar o consumir versiones de paquetes. Debe autenticarse en el CodeArtifact servicio creando un token de autorización con sus AWS credenciales. Los paquetes de los CodeArtifact repositorios no se pueden poner a disposición del público. Para obtener más información sobre la autenticación y el acceso a ellos CodeArtifact, consulte[Autenticación y tokens de AWS CodeArtifact](tokens-authentication.md).

# AWS CodeArtifact conceptos
<a name="codeartifact-concepts"></a>

 Estos son algunos conceptos y términos que debes conocer cuando los CodeArtifact utilices. 

**Topics**
+ [Activo](#welcome-concepts-asset)
+ [Dominio](#welcome-concepts-domain)
+ [Repository](#welcome-concepts-repository)
+ [Package](#welcome-concepts-package)
+ [Grupo de paquetes](#welcome-concepts-package-group)
+ [Espacio de nombres de paquetes](#welcome-concepts-package-namespace)
+ [Versión de un paquete](#welcome-concepts-package-version)
+ [Revisión de la versión del paquete](#welcome-concepts-package-version-revision)
+ [Repositorio ascendente](#welcome-concepts-upstream)

## Activo
<a name="welcome-concepts-asset"></a>

Un *activo* es un archivo individual almacenado y asociado a una versión de paquete, como un `.tgz` archivo npm o archivos POM y JAR de Maven. CodeArtifact 

## Dominio
<a name="welcome-concepts-domain"></a>

Los repositorios se agregan en una entidad de nivel superior conocida como *dominio*. Todos los activos y metadatos del paquete se almacenan en el dominio, pero se consumen en los repositorios. Un activo de paquete determinado, como un archivo JAR de Maven, se almacena una vez por dominio, independientemente del número de repositorios en los que esté presente. Todos los activos y metadatos de un dominio se cifran con la misma AWS KMS key (clave KMS) almacenada en AWS Key Management Service (AWS KMS).

Cada repositorio es miembro de un único dominio y no se puede mover a un dominio diferente.

Con un dominio, puede aplicar una política organizativa en varios repositorios. Con este enfoque, determina qué cuentas pueden acceder a los repositorios del dominio y qué repositorios públicos se pueden usar como fuentes de paquetes.

Aunque una organización puede tener varios dominios, recomendamos un único dominio de producción que contenga todos los artefactos publicados. De esta forma, los equipos pueden buscar y compartir paquetes en toda la organización.

## Repository
<a name="welcome-concepts-repository"></a>

Un CodeArtifact *repositorio* contiene un conjunto de [versiones de paquetes](#welcome-concepts-package-version), cada una de las cuales se asigna a un conjunto de [activos](#welcome-concepts-asset). Los repositorios son políglotas: un único repositorio puede contener paquetes de cualquier tipo compatible. Cada repositorio expone puntos de conexión para obtener y publicar paquetes mediante herramientas como la CLI nuget, la CLI npm, la CLI de Maven (mvn) y pip. Puede crear hasta 1000 repositorios por dominio.

## Package
<a name="welcome-concepts-package"></a>

Un *paquete* es un paquete de software y los metadatos necesarios para resolver las dependencias e instalar el software. En CodeArtifact, un paquete consta de un nombre de paquete, un espacio de [nombres](#welcome-concepts-package-namespace) opcional, como `@types` in`@types/node`, un conjunto de versiones del paquete y metadatos a nivel de paquete, como las etiquetas npm.

AWS CodeArtifact [[admite los formatos de paquete [Cargo](using-cargo.md), [generic](using-generic.md), [Maven](using-maven.md), [npm](using-npm.md), [NuGet](using-nuget.md)[PyPI](using-python.md), Ruby y Swift.](using-swift.md)](using-ruby.md)

## Grupo de paquetes
<a name="welcome-concepts-package-group"></a>

Los *grupos de paquetes* se pueden usar para aplicar la configuración a varios paquetes que coincidan con un patrón definido mediante el formato del paquete, el espacio de nombres del paquete y el nombre del paquete. Puede usar grupos de paquetes para configurar de manera más cómoda los controles de origen de los paquetes para varios paquetes. Los controles de origen de los paquetes se utilizan para bloquear o permitir la ingesta o publicación de nuevas versiones de paquetes, lo que protege a los usuarios de acciones malintencionadas conocidas como ataques de sustitución de dependencias.

## Espacio de nombres de paquetes
<a name="welcome-concepts-package-namespace"></a>

Algunos formatos de paquetes admiten nombres de paquetes jerárquicos para organizar los paquetes en grupos lógicos y evitar colisiones de nombres. Por ejemplo, npm admite alcances. Para obtener más información, consulte la [documentación de alcances de npm](https://docs.npmjs.com/cli/v7/using-npm/scope). El paquete npm `@types/node` tiene un alcance `@types` y un nombre de `node`. Hay muchos otros nombres de paquetes en el alcance `@types`. En CodeArtifact, el ámbito («tipos») se denomina espacio de nombres del paquete y el nombre («nodo») se denomina nombre del paquete. En el caso de los paquetes de Maven, el espacio de nombres del paquete corresponde al ID de grupo de Maven. El paquete Maven `org.apache.logging.log4j:log4j` tiene un groupID (espacio de nombres del paquete) de `org.apache.logging.log4j` y un artifactID (nombre del paquete) `log4j`. Para los paquetes genéricos, se requiere un [espacio de nombres](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PublishPackageVersion.html#namespace). Algunos formatos de paquetes, como PyPI, no admiten nombres jerárquicos con un concepto similar al alcance de npm o al ID de grupo de Maven. Sin una forma de agrupar los nombres de los paquetes, puede resultar más difícil evitar las colisiones de nombres.

## Versión de un paquete
<a name="welcome-concepts-package-version"></a>

La *versión de un paquete* identifica la versión específica de un paquete, por ejemplo `@types/node 12.6.9`. El formato y la semántica del número de versión varían según los distintos formatos de paquete. Por ejemplo, las versiones del paquete npm deben cumplir con la [especificación de control de versiones semántico](https://semver.org/). En CodeArtifact, la versión de un paquete consta del identificador de la versión, los metadatos a nivel de versión del paquete y un conjunto de activos.

## Revisión de la versión del paquete
<a name="welcome-concepts-package-version-revision"></a>

 La *revisión de la versión de un paquete* es una cadena que identifica un conjunto específico de activos y metadatos para una versión de paquete. Cada vez que se actualiza la versión de un paquete, se crea una nueva revisión de la versión del paquete. Por ejemplo, puede publicar un archivo de distribución de código fuente (**sdist**) para una versión de paquete de Python y, posteriormente, añadir una **rueda** de Python que contenga código compilado a la misma versión. Al publicar la **rueda**, se crea una nueva revisión de la versión del paquete. 

## Repositorio ascendente
<a name="welcome-concepts-upstream"></a>

Un repositorio es *ascendente* de otro cuando se puede acceder a las versiones de los paquetes que contiene desde el punto de conexión del repositorio descendente. Este enfoque fusiona de manera efectiva el contenido de los dos repositorios desde el punto de vista de un cliente. Con CodeArtifact él, puede crear una relación ascendente entre dos repositorios.

## ¿Cómo puedo empezar CodeArtifact?
<a name="how-do-i-get-started"></a>

 Le recomendamos que siga los pasos que se describen a continuación: 

1.  **Obtenga** más información CodeArtifact leyendo[AWS CodeArtifact conceptos](codeartifact-concepts.md). 

1.  **Configure** su usuario Cuenta de AWS AWS CLI, el y un usuario de IAM siguiendo los pasos que se indican en[Configuración con AWS CodeArtifact](get-set-up-for-codeartifact.md). 

1.  **Úselo** CodeArtifact siguiendo las instrucciones que se indican en[Introducción a CodeArtifact](getting-started.md). 