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.
Concepts AWS CodeArtifact
Voici quelques concepts et termes à connaître lorsque vous les utilisez CodeArtifact.
Rubriques
Ressource
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.
Domaine
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.
Un CodeArtifact référentiel contient un ensemble de versions de packages, chacune correspondant à un ensemble de ressources. 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
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 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, generic, Maven, npm, NuGetPyPI, Ruby et Swift.
Groupe de packages
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
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.@types/node
a une portée @types
et un nom denode
. 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 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
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
Révision de la version du package
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
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.