Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Im Folgenden finden Sie einige Konzepte und Begriffe, die Sie bei der Verwendung CodeArtifact kennen sollten.
Themen
Komponente
Ein Asset ist eine einzelne Datei CodeArtifact , die in einer Paketversion gespeichert ist, z. B. eine .tgz
NPM-Datei oder Maven POM- und JAR-Dateien.
Domain
Repositorys werden zu einer übergeordneten Entität zusammengefasst, die als Domain bezeichnet wird. Alle Paketressourcen und Metadaten werden in der Domain gespeichert, aber sie werden über Repositorys genutzt. Ein bestimmtes Paket-Asset, z. B. eine Maven-JAR-Datei, wird einmal pro Domain gespeichert, unabhängig davon, in wie vielen Repositorys es vorhanden ist. Alle Assets und Metadaten in einer Domain werden mit demselben AWS KMS key (KMS-Schlüssel) verschlüsselt, der in AWS Key Management Service (AWS KMS) gespeichert ist.
Jedes Repository ist Mitglied einer einzelnen Domain und kann nicht in eine andere Domain verschoben werden.
Mithilfe einer Domain können Sie eine Unternehmensrichtlinie auf mehrere Repositorys anwenden. Mit diesem Ansatz legen Sie fest, welche Konten auf Repositorys in der Domain zugreifen können und welche öffentlichen Repositorys als Paketquellen verwendet werden können.
Obwohl eine Organisation mehrere Domänen haben kann, empfehlen wir eine einzige Produktionsdomäne, die alle veröffentlichten Artefakte enthält. Auf diese Weise können Teams Pakete innerhalb Ihrer Organisation finden und gemeinsam nutzen.
Repository
Ein CodeArtifact Repository enthält eine Reihe von Paketversionen, von denen jede einer Reihe von Assets zugeordnet ist. Repositorys sind mehrsprachig — ein einzelnes Repository kann Pakete aller unterstützten Typen enthalten. Jedes Repository stellt Endpunkte zum Abrufen und Veröffentlichen von Paketen mithilfe von Tools wie der Nuget-CLI, der NPM-CLI, der Maven-CLI (mvn) und pip zur Verfügung. Sie können bis zu 1.000 Repositorys pro Domain erstellen.
Paket
Ein Paket ist ein Paket aus Software und Metadaten, das zur Auflösung von Abhängigkeiten und zur Installation der Software erforderlich ist. In CodeArtifact besteht ein Paket aus einem Paketnamen, einem optionalen Namespace wie @types
in@types/node
, einer Reihe von Paketversionen und Metadaten auf Paketebene wie npm-Tags.
AWS CodeArtifact unterstützt die Paketformate Cargo, Generic, Maven, npm NuGet, PyPI, Ruby und Swift.
Paketgruppe
Paketgruppen können verwendet werden, um die Konfiguration auf mehrere Pakete anzuwenden, die einem definierten Muster entsprechen, wobei das Paketformat, der Paketnamespace und der Paketname verwendet werden. Sie können Paketgruppen verwenden, um die Steuerung des Paketursprungs für mehrere Pakete bequemer zu konfigurieren. Kontrollen zur Paketherkunft werden verwendet, um die Aufnahme oder Veröffentlichung neuer Paketversionen zu blockieren oder zuzulassen. Dadurch werden Benutzer vor böswilligen Aktionen geschützt, die als Abhängigkeitsersetzungsangriffe bezeichnet werden.
Paket-Namespace
Einige Paketformate unterstützen hierarchische Paketnamen, um Pakete in logische Gruppen zu organisieren und Namenskollisionen zu vermeiden. Zum Beispiel unterstützt npm Bereiche. Weitere Informationen finden Sie in der Dokumentation zu npm-Scopes@types/node
hat den Gültigkeitsbereich @types
und den Namen. node
Es gibt viele andere Paketnamen im @types
Gültigkeitsbereich. CodeArtifactIn wird der Bereich („Typen“) als Paket-Namespace und der Name („Knoten“) als Paketname bezeichnet. Bei Maven-Paketen entspricht der Paket-Namespace der Maven-GroupID. Das Maven-Paket org.apache.logging.log4j:log4j
hat eine GroupID (Paket-Namespace) von org.apache.logging.log4j
und die ArtifactID (Paketname). log4j
Für generische Pakete ist ein Namespace erforderlich. Einige Paketformate wie PyPI unterstützen keine hierarchischen Namen mit einem ähnlichen Konzept wie npm scope oder Maven GroupID. Ohne eine Möglichkeit, Paketnamen zu gruppieren, kann es schwieriger sein, Namenskollisionen zu vermeiden.
Paketversion
Eine Paketversion identifiziert die spezifische Version eines Pakets, z. B. @types/node 12.6.9
Das Format und die Semantik der Versionsnummer variieren je nach Paketformat. Beispielsweise müssen npm-Paketversionen der Semantic
Revision der Paketversion
Eine Paketversionsrevision ist eine Zeichenfolge, die einen bestimmten Satz von Ressourcen und Metadaten für eine Paketversion identifiziert. Jedes Mal, wenn eine Paketversion aktualisiert wird, wird eine neue Paketversionsrevision erstellt. Sie könnten beispielsweise ein Quellverteilungsarchiv (sdist) für eine Python-Paketversion veröffentlichen und später ein Python-Rad hinzufügen, das kompilierten Code zu derselben Version enthält. Wenn Sie das Rad veröffentlichen, wird eine neue Version der Paketversion erstellt.
Upstream-Repository
Ein Repository ist einem anderen vorgelagert, wenn auf die darin enthaltenen Paketversionen vom Repository-Endpunkt des Downstream-Repositorys aus zugegriffen werden kann. Bei diesem Ansatz werden die Inhalte der beiden Repositorien aus Sicht eines Kunden effektiv zusammengeführt. Mithilfe CodeArtifact können Sie eine Upstream-Beziehung zwischen zwei Repositorys erstellen.