

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Qu'est-ce que c'est AWS CodeArtifact ?
<a name="welcome"></a>

AWS CodeArtifact est un service de référentiel d'artefacts géré, sécurisé et hautement évolutif qui aide les entreprises à stocker et à partager des progiciels pour le développement d'applications. Vous pouvez l'utiliser CodeArtifact avec des outils de construction et des gestionnaires de packages populaires tels que la NuGet CLI, Maven, Gradle, npm, yarn, pip et twine. CodeArtifact vous permet de ne plus avoir à gérer votre propre système de stockage d'artefacts ou à vous soucier de la mise à l'échelle de son infrastructure. Il n'existe aucune limite quant au nombre ou à la taille totale des packages que vous pouvez stocker dans un CodeArtifact référentiel.

Vous pouvez créer une connexion entre votre CodeArtifact dépôt privé et un dépôt public externe, tel que npmjs.com ou Maven Central. CodeArtifact récupérera et stockera ensuite les packages à la demande depuis le référentiel public lorsqu'ils sont demandés par un gestionnaire de packages. Cela facilite l'utilisation des dépendances open source utilisées par votre application et permet de garantir qu'elles sont toujours disponibles pour les builds et le développement. Vous pouvez également publier des packages privés dans un CodeArtifact référentiel. Cela vous permet de partager des composants logiciels propriétaires entre plusieurs applications et équipes de développement de votre organisation.

 Pour de plus amples informations, veuillez consulter [AWS CodeArtifact](https://aws.amazon.com/codeartifact/).

## Comment CodeArtifact fonctionne ?
<a name="codeartifact-how-does-it-work"></a>

CodeArtifact stocke les progiciels dans des référentiels. Les référentiels sont polyglottes : un référentiel unique peut contenir tous les types de packages pris en charge. Chaque CodeArtifact dépôt est membre d'un seul CodeArtifact domaine. Nous vous recommandons d'utiliser un seul domaine de production pour votre organisation avec un ou plusieurs référentiels. Par exemple, vous pouvez utiliser chaque référentiel pour une équipe de développement différente. Les packages de vos référentiels peuvent ensuite être découverts et partagés entre vos équipes de développement. 

Pour ajouter des packages à un référentiel, configurez un gestionnaire de packages tel que npm ou Maven pour utiliser le point de terminaison (URL) du référentiel. Vous pouvez ensuite utiliser le gestionnaire de packages pour publier des packages dans le référentiel. Vous pouvez également importer des packages open source dans un référentiel en le configurant avec une connexion externe à un référentiel public tel que npmjs, NuGet Gallery, Maven Central ou PyPI. Pour de plus amples informations, veuillez consulter [Connect un CodeArtifact dépôt à un dépôt public](external-connection.md). 

 Vous pouvez mettre les packages d'un référentiel à la disposition d'un autre référentiel du même domaine. Pour ce faire, configurez un référentiel en amont de l'autre. Toutes les versions de package disponibles dans le référentiel en amont sont également disponibles dans le référentiel en aval. En outre, tous les packages disponibles dans le référentiel en amont via une connexion externe à un référentiel public sont disponibles dans le référentiel en aval. Pour de plus amples informations, veuillez consulter [Utilisation de référentiels en amont dans CodeArtifact](repos-upstream.md). 

CodeArtifact oblige les utilisateurs à s'authentifier auprès du service afin de publier ou de consommer des versions de package. Vous devez vous authentifier auprès du CodeArtifact service en créant un jeton d'autorisation à l'aide de vos AWS informations d'identification. Les packages des CodeArtifact référentiels ne peuvent pas être mis à la disposition du public. Pour plus d'informations sur l'authentification et l'accès CodeArtifact, consultez[AWS CodeArtifact authentification et jetons](tokens-authentication.md).

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

 Voici quelques concepts et termes à connaître lorsque vous les utilisez CodeArtifact. 

**Topics**
+ [Ressource](#welcome-concepts-asset)
+ [Domain](#welcome-concepts-domain)
+ [Référentiel](#welcome-concepts-repository)
+ [Package](#welcome-concepts-package)
+ [Groupe de packages](#welcome-concepts-package-group)
+ [Espace de noms du package](#welcome-concepts-package-namespace)
+ [Version du package](#welcome-concepts-package-version)
+ [Révision de la version du package](#welcome-concepts-package-version-revision)
+ [Référentiel en amont](#welcome-concepts-upstream)

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

Un *actif* est un fichier individuel stocké dans CodeArtifact un fichier associé à une version de package, tel qu'un fichier npm ou des `.tgz` fichiers Maven POM et JAR.

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

*Les référentiels sont agrégés dans une entité de niveau supérieur appelée domaine.* Toutes les ressources et métadonnées du package sont stockées dans le domaine, mais elles sont consommées via des référentiels. Un actif de package donné, tel qu'un fichier JAR Maven, est stocké une fois par domaine, quel que soit le nombre de référentiels dans lesquels il se trouve. Toutes les ressources et métadonnées d'un domaine sont chiffrées avec la même clé AWS KMS key (clé KMS) stockée dans AWS Key Management Service (AWS KMS).

Chaque dépôt est membre d'un seul domaine et ne peut pas être déplacé vers un autre domaine.

À l'aide d'un domaine, vous pouvez appliquer une politique organisationnelle à plusieurs référentiels. Cette approche vous permet de déterminer quels comptes peuvent accéder aux référentiels du domaine et quels référentiels publics peuvent être utilisés comme sources de packages.

Bien qu'une organisation puisse avoir plusieurs domaines, nous recommandons un seul domaine de production contenant tous les artefacts publiés. Ainsi, les équipes peuvent trouver et partager des packages au sein de votre organisation.

## Référentiel
<a name="welcome-concepts-repository"></a>

Un CodeArtifact *référentiel* contient un ensemble de [versions de packages](#welcome-concepts-package-version), chacune correspondant à un ensemble de [ressources](#welcome-concepts-asset). Les référentiels sont polyglottes : un référentiel unique peut contenir tous les types de packages pris en charge. Chaque référentiel expose des points de terminaison permettant de récupérer et de publier des packages à l'aide d'outils tels que la CLI nuget, la CLI npm, la CLI Maven (mvn) et pip. Vous pouvez créer jusqu'à 1 000 référentiels par domaine.

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

Un *package* est un ensemble de logiciels et de métadonnées nécessaires pour résoudre les dépendances et installer le logiciel. Dans CodeArtifact, un package se compose d'un nom de package, d'un espace de [noms](#welcome-concepts-package-namespace) facultatif tel que `@types` in`@types/node`, d'un ensemble de versions de package et de métadonnées au niveau du package telles que des balises npm.

AWS CodeArtifact [[prend en charge les formats de package [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 et Swift.](using-swift.md)](using-ruby.md)

## Groupe de packages
<a name="welcome-concepts-package-group"></a>

*Les groupes de packages* peuvent être utilisés pour appliquer une configuration à plusieurs packages qui correspondent à un modèle défini en utilisant le format du package, l'espace de noms du package et le nom du package. Vous pouvez utiliser des groupes de packages pour configurer plus facilement les contrôles d'origine des packages pour plusieurs packages. Les contrôles d'origine des packages sont utilisés pour bloquer ou autoriser l'ingestion ou la publication de nouvelles versions de packages, ce qui protège les utilisateurs contre les actions malveillantes connues sous le nom d'attaques de substitution de dépendances.

## Espace de noms du package
<a name="welcome-concepts-package-namespace"></a>

Certains formats de package prennent en charge les noms de packages hiérarchiques afin d'organiser les packages en groupes logiques et d'éviter les collisions de noms. Par exemple, npm prend en charge les scopes. Pour plus d'informations, consultez la documentation de [npm scopes.](https://docs.npmjs.com/cli/v7/using-npm/scope) Le package npm `@types/node` a une portée `@types` et un nom de`node`. Il existe de nombreux autres noms de packages dans le `@types` champ d'application. Dans CodeArtifact, la portée (« types ») est appelée espace de noms du package et le nom (« nœud ») est appelé nom du package. Pour les packages Maven, l'espace de noms du package correspond au Maven GroupID. Le package Maven `org.apache.logging.log4j:log4j` possède un groupID (espace de noms de package) `org.apache.logging.log4j` et un artifactID (nom du package). `log4j` Pour les packages génériques, un [espace de noms](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PublishPackageVersion.html#namespace) est requis. Certains formats de package tels que PyPI ne prennent pas en charge les noms hiérarchiques avec un concept similaire à npm scope ou Maven GroupID. Sans moyen de regrouper les noms de packages, il peut être plus difficile d'éviter les collisions de noms.

## Version du package
<a name="welcome-concepts-package-version"></a>

Une *version de package* identifie la version spécifique d'un package, telle que`@types/node 12.6.9`. Le format et la sémantique du numéro de version varient en fonction des différents formats de package. Par exemple, les versions du package npm doivent être conformes à la spécification de [version sémantique](https://semver.org/). Dans CodeArtifact, une version de package comprend l'identifiant de version, les métadonnées au niveau de la version du package et un ensemble de ressources.

## Révision de la version du package
<a name="welcome-concepts-package-version-revision"></a>

 Une *révision de version de package* est une chaîne qui identifie un ensemble spécifique de ressources et de métadonnées pour une version de package. Chaque fois qu'une version de package est mise à jour, une nouvelle révision de version de package est créée. Par exemple, vous pouvez publier une archive de distribution source (**sdist**) pour une version de package Python, puis ajouter une **roue** Python contenant du code compilé à la même version. Lorsque vous publiez la **roue**, une nouvelle version du package est créée. 

## Référentiel en amont
<a name="welcome-concepts-upstream"></a>

Un référentiel est *situé en amont* d'un autre lorsque les versions des packages qu'il contient sont accessibles depuis le point de terminaison du référentiel du référentiel en aval. Cette approche fusionne efficacement le contenu des deux référentiels du point de vue du client. À l'aide de CodeArtifact, vous pouvez créer une relation en amont entre deux référentiels.

## Comment puis-je commencer CodeArtifact ?
<a name="how-do-i-get-started"></a>

 Nous vous recommandons d'effectuer les étapes suivantes : 

1.  **Apprenez-en** plus CodeArtifact en lisant[AWS CodeArtifact concepts](codeartifact-concepts.md). 

1.  **Configurez** votre Compte AWS AWS CLI, le et un utilisateur IAM en suivant les étapes décrites dans[Configuration avec AWS CodeArtifact](get-set-up-for-codeartifact.md). 

1.  **À utiliser** CodeArtifact en suivant les instructions figurant dans[Commencer avec CodeArtifact](getting-started.md). 