Preguntas frecuentes sobre AWS CodeArtifact

Aspectos generales

AWS CodeArtifact es un servicio de repositorio de artefactos completamente administrado que hace fácil para las organizaciones de cualquier tamaño almacenar, publicar y compartir de forma segura paquetes de software utilizados en los procesos de desarrollo de software. CodeArtifact funciona con administradores de paquetes de uso habitual y herramientas de compilación, como Maven y Gradle (Java), npm y yarn (JavaScript), pip y twine (Python) o NuGet (.NET).

  • npm/Yarn
  • pip/twine
  • Maven/Gradle
  • NuGet
  • RubyGems
  • SwiftPM
  • Generic
  • Carga

Con CodeArtifact no hay cuotas ni compromisos por anticipado. Solo paga por los paquetes de software almacenados, el números de solicitudes realizadas y los datos transferidos de una región de AWS. CodeArtifact incluye una capa gratuita mensual para almacenamiento y solicitudes. Para obtener más información, consulte los detalles sobre precios.

CodeArtifact se encuentra disponible en las siguientes 13 regiones de AWS:

  • EE.UU. Este (Norte de Virginia)
  • EE.UU. Este (Ohio)
  • EE.UU. Oeste (Oregón)
  • UE (Irlanda)
  • UE (Londres)
  • UE (Fráncfort)
  • UE (Estocolmo)
  • UE (Milán)
  • UE (París)
  • Asia Pacífico (Sídney)
  • Asia Pacífico (Tokio)
  • Asia Pacífico (Mumbai)
  • Asia Pacífico (Singapur)

 

Introducción/uso de CodeArtifact

Para empezar a usar CodeArtifact, cree un nuevo dominio y repositorio mediante la consola de administración de AWS, los SDK o la CLI. Tras ello, puede usar administradores de paquetes y herramientas de compilación populares, como npm o yarn (JavaScript), maven o gradle (Java), pip (Python) o NuGet (.NET) para publicar paquetes en el repositorio. También puede consumir paquetes de código abierto de repositorios públicos, como npm registry, Maven Central, Python Package Index (PyPI) o NuGet.org a través del repositorio de CodeArtifact, que almacena cualquier paquetes consumido de esta forma.

Un dominio es un constructo específico de CodeArtifact que permite agrupar y administrar varios repositorios de CodeArtifact que pertenecen a una única organización entre varias cuentas de AWS. Por ejemplo, una organización puede crear un repositorio central para compartir paquetes entre equipos y repositorios a nivel de proyecto para almacenar los paquetes que solo utilizan un único equipo o aplicación.

Un repositorio de CodeArtifact contiene un conjunto de versiones de paquetes, de las que cada una se asigna a un conjunto de recursos. Los repositorios son políglotas; un único repositorio puede contener paquetes de cualquier tipo admitido. Cada repositorio expone puntos de enlace para recuperar y publicar paquetes mediante herramientas, como la CLI de npm, la CLI de Maven (mvn), pip y NuGet. Para los límites de recursos en AWS CodeArtifact, consulte Cuotas en AWS CodeArtifact.

Puede crear repositorios mediante el asistente en consola o mediante programación con los SDK o la CLI de AWS. Para más información, consulte Creación de un repositorio en la documentación de AWS CodeArtifact.

Puede publicar artefactos mediante herramientas nativas del lenguaje, como npm o yarn (JavaScript), maven o gradle (Java), twine (Python) o NuGet (.NET). Por ejemplo, para publicar una nueva versión de un paquete mediante npm se necesitan dos comandos: primero, ejecute el comando “login” de la CLI de CodeArtifact y, a continuación, ejecute npm publish para cargar el paquete en el repositorio. AWS CodeBuild puede ejecutar los mismos comandos para publicar nuevas versiones del paquete como parte de un flujo de trabajo de integración continua (CI). Obtenga más información aquí.

Puede recuperar artefactos mediante herramientas de lenguaje nativo. Por ejemplo, para instalar el paquete webpack de npm y todas sus dependencias, ejecute el comando “login” de la CLI de CodeArtifact y ejecute npm install webpack. npm recupera webpack de CodeArtifact, realiza la resolución de dependencias según la información en el archivo package.json de webpack y recupera de forma recursiva todas las dependencias necesarias de CodeArtifact. Obtenga más información aquí.

En la consola de CodeArtifact, cree un repositorio con una conexión externa para recuperar paquetes de un repositorio público como npm registry. También puede usar la API AssociateExternalConnection para crear una conexión entre un repositorio de CodeArtifact y un repositorio público. Cada vez que se solicitan paquetes, CodeArtifact incorpora y almacena en caché los paquetes necesarios desde los repositorios externos si los paquetes no estaban presentes todavía.

Autenticación y control de acceso

Primero, instale la CLI de AWS y configure las credenciales de AWS para un usuario o rol de IAM que tenga el permiso adecuado para acceder a CodeArtifact. A continuación puede usar la CLI para llamar a la API GetAuthorizationToken de CodeArtifact. Esta API vende tokens de autenticación, que pueden incluirse en la cabecera de autorización HTTP en las solicitudes realizadas por los gestores de paquetes y las herramientas de compilación. La CLI proporciona el comando login, que llama a GetAuthorizationToken y configura automáticamente un gestor de paquetes para que use este token para todas las solicitudes. Esto es similar al comando get-login proporcionado por Aazon ECR, por lo que los desarrolladores que hayan interactuado con ECR a través de la CLI de Docker estarán familiarizados con este patrón.

Sí. Los repositorios de CodeArtifact admiten políticas de recursos para habilitar el acceso entre cuentas. Puede agregar una política de recursos mediante la consola o la CLI de AWS.

Sí. CodeArtifact admite los permisos de escritura a nivel de paquete. Puede configurarlos agregando declaraciones al documento de políticas de recursos de un repositorio que especifiquen un ARN de paquete como recurso. CodeArtifact solo admite permisos de lectura a nivel de paquete; es decir, un principal de IAM puede leer todos los paquetes de un repositorio o ninguno de ellos.

Sí. Todos los paquetes almacenados por CodeArtifact se cifran en tránsito mediante TLS y en reposo mediante cifrado con clave simétrica AES-256. CodeArtifact es compatible con CMK administradas por el cliente de AWS Key Management Service (KMS) y CMK administradas por AWS.

Integraciones

Sí. Puede especificar los repositorios de CodeArtifact que se usarán para consumir y publicar paquetes en la configuración del proyecto de CodeBuild. Las imágenes de CodeBuild disponibles incluyen herramientas de cliente para todos los tipos de paquetes que admite CodeArtifact. CodeBuild configura la herramienta de compilación o el gestor de paquetes para usar el repositorio especificado y recuperar un token de autenticación de CodeArtifact al principio de la compilación mediante el rol de IAM de la compilación. También puede especificar los artefactos de compilación que deben publicarse a su repositorio de CodeArtifact al completarse la compilación. Las compilaciones de CodeBuild se pueden disparar con eventos de CloudWatch Events emitidos por un repositorio de CodeArtifact cuando cambia su contenido.

Sí. Mediante Amazon EventBridge, puede dispara una compilación de CodePipeline cuando cambia un paquete almacenado en un repositorio de CodeArtifact; por ejemplo, cuando se publica una nueva versión de un paquete.

Sí. Puede crear recursos de CodeArtifact tales como dominios y repositorios utilizando CloudFormation. Consulte la documentación de CodeArtifact para obtener más detalles.