- Outils pour développeurs›
- AWS CodeArtifact›
- Questions fréquentes (FAQ)
Questions fréquentes (FAQ) AWS CodeArtifact
Questions d’ordre général
Qu’est-ce qu’AWS CodeArtifact ?
AWS CodeArtifact est un service de référentiel d'artefacts entièrement géré qui permet aux organisations de toute taille de stocker, de publier et de partager en toute sécurité les progiciels utilisés dans leur processus de développement de logiciels. CodeArtifact fonctionne avec des gestionnaires de packages couramment utilisés et crée des outils comme Maven et Gradle (Java), npm et yarn (JavaScript), pip et twine (Python) ou NuGet (.NET).
Quels formats de package pouvez-vous stocker dans CodeArtifact ?
- npm/Yarn
- pip/twine
- Maven/Gradle
- NuGet
- RubyGems
- SwiftPM
- Générique
- Cargo
Quel est le coût de CodeArtifact ?
Avec AWS CodeArtifact, il n'existe pas de frais initiaux ni d'engagement. Vous ne payez que les logiciels stockés, le nombre de demandes effectuées et les données transférées à partir d'une région AWS. CodeArtifact comprend une offre gratuite d’un mois pour le stockage et les demandes. Pour les informations de tarification, consultez les informations de tarification.
Dans quelles régions AWS CodeArtifact est-il disponible ?
CodeArtifact est disponible dans les 13 régions AWS suivantes :
- USA Est (Virginie du Nord)
- USA Est (Ohio)
- USA Ouest (Oregon)
- UE (Irlande)
- UE (Londres)
- UE (Francfort)
- UE (Stockholm)
- UE (Milan)
- UE (Paris)
- Asie-Pacifique (Sydney)
- Asie-Pacifique (Tokyo)
- Asie-Pacifique (Mumbai)
- Asie-Pacifique (Singapour)
Démarrage/utilisation de CodeArtifact
Comment démarrer avec CodeArtifact ?
Vous pouvez commencer à utiliser CodeArtifact en créant un domaine et un référentiel à l'aide d'AWS Management Console, des SDK ou l’interface de ligne de commande (CLI). Vous pouvez ensuite utiliser les gestionnaires de packages courants et créer des outils tels que la CLI npm ou yarn (JavaScript), maven ou gradle (Java), pip (Python) ou NuGet (.NET) pour publier des packages dans votre référentiel. Vous pouvez également consommer des packages open-source provenant de référentiels publics tels que npm registry, Maven Central, Python Package Index (PyPI) ou NuGet.org via votre référentiel CodeArtifact qui stocke tous les packages consommés de cette manière.
Qu’est-ce qu’un domaine CodeArtifact ?
Un domaine est une construction spécifique à CodeArtifact qui permet de regrouper et de gérer plusieurs référentiels CodeArtifact appartenant à une seule organisation dans plusieurs comptes AWS. Par exemple, une organisation peut créer un référentiel central pour le partage des packages entre les équipes et des référentiels du projet pour stocker les packages utilisés uniquement par une seule équipe ou application.
Qu’est-ce qu’un référentiel CodeArtifact ?
Un référentiel CodeArtifact contient un ensemble de versions de packages, dont chacune correspond à un ensemble de ressources. Les référentiels sont polyglottes : un seul référentiel peut contenir des packages de n’importe quel type pris en charge. Chaque référentiel expose les points de terminaison pour la récupération et la publication de packages à l'aide d'outils tels que le CLI npm, la CLI Maven (mvn), pip et NuGet. Pour connaître les limites de ressources dans AWS CodeArtifact, consultez la section Quotas dans AWS CodeArtifact.
Comment créer des référentiels dans CodeArtifact ?
Vous pouvez créer des référentiels à l'aide de l'assistant de console, ou par programmation en utilisant les SDK AWS ou la CLI AWS. Pour plus d’informations, consultez Créer un référentiel dans la documentation d’AWS CodeArtifact.
Comment publier des artefacts dans CodeArtifact ?
Vous pouvez publier des artefacts à l'aide d'outils linguistiques natifs tels que npm ou yarn (JavaScript), maven ou gradle (Java), twine (Python) ou NuGet (.NET). Par exemple, la publication d'une nouvelle version d'un package utilisant npm nécessite deux commandes : d’abord, lancez la commande « login » sur la CLI de CodeArtifact ; puis exécutez npm publish pour charger le package dans le référentiel. Les mêmes commandes peuvent être exécutées par AWS CodeBuild pour publier de nouvelles versions de packages dans le cadre d'un flux de travail d'intégration continue (IC). Pour en savoir plus, cliquez ici.
Comment récupérer un artefact depuis CodeArtifact ?
Vous pouvez récupérer des artefacts à l'aide d'outils linguistiques natifs. Par exemple, pour installer le package npm webpack et toutes ses dépendances, lancez la commande « login » depuis la CLI de CodeArtifact, puis lancez npm install webpack. npm récupère le webpack dans CodeArtifact, effectue la résolution des dépendances en fonction des informations contenues dans le fichier package.json du webpack, puis récupère récursivement toutes les dépendances requises dans CodeArtifact. Pour en savoir plus, cliquez ici.
Comment configurer un référentiel CodeArtifact pour extraire des packages des référentiels de packages externes tels que le registre npm ?
Sur la console CodeArtifact, créez un référentiel avec une connexion externe pour extraire des packages d'un référentiel public tel que le registre npm. Vous pouvez également utiliser l'API AssociateExternalConnection pour créer une connexion entre un référentiel CodeArtifact et un référentiel public. Chaque fois que des packages sont demandés, CodeArtifact extrait et met en cache les packages requis à partir de référentiels externes si ces packages ne sont pas déjà présents.
Authentification et contrôle d'accès
Comment puis-je m'authentifier dans un référentiel CodeArtifact depuis la CLI AWS ?
Tout d'abord, installez la CLI AWS et définissez les informations d’identification AWS d’un utilisateur ou d’un rôle IAM qui a les autorisations appropriées pour accéder à CodeArtifact. Vous pouvez ensuite utiliser le CLI pour appeler l'API CodeArtifact GetAuthorizationToken. Cette API fournit des jetons d'authentification, qui peuvent être inclus dans l'en-tête HTTP Authorization dans les demandes faites par les gestionnaires de packages et les outils de génération. La CLI fournit la commande de connexion qui appelle GetAuthorizationToken et configure automatiquement un gestionnaire de packages pour qu'il utilise ce jeton pour toutes les demandes. Cette commande est similaire à la commande get-login fournie par Amazon ECR. Par conséquent, les développeurs qui ont interagi avec ECR en utilisant la CLI Docker connaissent ce modèle.
Puis-je autoriser l'accès entre comptes à mon référentiel ?
Oui. Les référentiels CodeArtifact prennent en charge les politiques de ressources pour permettre l'accès entre comptes. Vous pouvez ajouter une politique de ressources via la console ou la CLI AWS.
Puis-je activer les autorisations au niveau du package ?
Oui. CodeArtifact prend en charge les autorisations d'écriture au niveau du package. Vous pouvez les configurer en ajoutant des déclarations à un document de politique de ressources de référentiel, qui spécifient un ARN de package comme ressource. CodeArtifact ne prend en charge que les autorisations de lecture au niveau du référentiel, c'est-à-dire qu'un mandataire IAM peut soit lire tous les packages d'un référentiel, soit aucun d'entre eux.
CodeArtifact chiffre-t-il mes packages ?
Oui. Tous les packages stockés par CodeArtifact sont chiffrés en transit au moyen de TLS et au repos au moyen d'un chiffrement à clé symétrique AES-256. CodeArtifact prend en charge à la fois les clés gérées par le client AWS Key Management Service (KMS) et les CMK gérées par AWS.
Intégrations
Puis-je utiliser AWS CodeArtifact avec AWS CodeBuild ?
Oui. Vous pouvez spécifier les référentiels CodeArtifact à utiliser pour la consommation et la publication de packages dans la configuration de votre projet CodeBuild. Les images CodeBuild disponibles comprennent des outils clients pour tous les types de packages pris en charge par CodeArtifact. CodeBuild configure l'outil de compilation ou le gestionnaire de packages pour qu'il utilise le référentiel spécifié et récupère un jeton d'authentification CodeArtifact au début de la compilation en utilisant le rôle IAM de la compilation. Vous pouvez également spécifier les artefacts de génération qui doivent être publiés dans votre référentiel CodeArtifact lorsque la génération est terminée. Les générations CodeBuild peuvent être déclenchées à l'aide d'événements CloudWatch émis par un référentiel CodeArtifact lorsque son contenu change.
Puis-je utiliser AWS CodeArtifact avec AWS CodePipeline ?
Oui. En utilisant Amazon EventBridge, vous pouvez déclencher une version de CodePipeline lorsqu'un package stocké dans un référentiel CodeArtifact change, par exemple, lorsqu'une nouvelle version du package est publiée.
Puis-je utiliser AWS CloudFormation pour créer des ressources AWS CodeArtifact ?
Oui. Vous pouvez créer des ressources CodeArtifact telles que des domaines et des référentiels en utilisant CloudFormation. Veuillez consulter la documentation de CodeArtifact pour plus d'informations.