

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.

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

 Im Folgenden finden Sie einige Konzepte und Begriffe, die Sie bei der Verwendung CodeArtifact kennen sollten. 

**Topics**
+ [Komponente](#welcome-concepts-asset)
+ [Domain](#welcome-concepts-domain)
+ [Repository](#welcome-concepts-repository)
+ [Package](#welcome-concepts-package)
+ [Paketgruppe](#welcome-concepts-package-group)
+ [Paket-Namespace](#welcome-concepts-package-namespace)
+ [Version Package](#welcome-concepts-package-version)
+ [Revision der Paketversion](#welcome-concepts-package-version-revision)
+ [Upstream-Repository](#welcome-concepts-upstream)

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

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
<a name="welcome-concepts-domain"></a>

*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
<a name="welcome-concepts-repository"></a>

Ein CodeArtifact *Repository* enthält eine Reihe von [Paketversionen](#welcome-concepts-package-version), von denen jede einer Reihe von [Assets](#welcome-concepts-asset) 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.

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

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](#welcome-concepts-package-namespace) wie `@types` in`@types/node`, einer Reihe von Paketversionen und Metadaten auf Paketebene wie npm-Tags.

AWS CodeArtifact [unterstützt die [Paketformate Cargo](using-cargo.md), [Generic](using-generic.md), [Maven](using-maven.md), [npm [NuGet](using-nuget.md)](using-npm.md), [PyPI](using-python.md), [Ruby und Swift](using-ruby.md).](using-swift.md)

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

*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
<a name="welcome-concepts-package-namespace"></a>

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](https://docs.npmjs.com/cli/v7/using-npm/scope). Das npm-Paket `@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.](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PublishPackageVersion.html#namespace) 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.

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

Eine *Paketversion* identifiziert die spezifische Version eines Pakets, z. `@types/node 12.6.9` B. Das Format und die Semantik der Versionsnummer variieren je nach Paketformat. Beispielsweise müssen npm-Paketversionen der [Semantic](https://semver.org/) Versioning-Spezifikation entsprechen. In CodeArtifact besteht eine Paketversion aus der Versionskennung, Metadaten auf Paketversionsebene und einer Reihe von Assets.

## Revision der Paketversion
<a name="welcome-concepts-package-version-revision"></a>

 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
<a name="welcome-concepts-upstream"></a>

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.