

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.

# Arbeiten mit Paketgruppen in CodeArtifact
<a name="package-groups"></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.

Jede Domäne enthält CodeArtifact automatisch eine Stammpaketgruppe. Diese Stammpaketgruppe`/*`,, enthält alle Pakete und ermöglicht es Paketversionen standardmäßig, Repositorys aller Herkunft in der Domäne einzugeben. Die Stammpaketgruppe kann geändert, aber nicht gelöscht werden.

Die Funktion zur Konfiguration von Paketgruppen funktioniert letztendlich konsistent, wenn eine neue Paketgruppe erstellt oder eine bestehende Paketgruppe gelöscht wird. Das bedeutet, dass beim Erstellen oder Löschen einer Paketgruppe die Ursprungskontrollen auf die erwarteten zugehörigen Pakete angewendet werden, allerdings mit einer gewissen Verzögerung aufgrund des letztlich konsistenten Verhaltens. Wie lange es dauert, bis eine endgültige Konsistenz erreicht ist, hängt von der Anzahl der Paketgruppen in der Domäne sowie von der Anzahl der Pakete in der Domäne ab. Es kann einen kurzen Zeitraum geben, in dem sich die Herkunftskontrollen nach dem Erstellen oder Löschen einer Paketgruppe nicht sofort auf die zugehörigen Pakete auswirken.

Darüber hinaus sind Aktualisierungen der Ursprungskontrollen für Paketgruppen fast sofort wirksam. Im Gegensatz zum Erstellen oder Löschen von Paketgruppen werden Änderungen an den Ursprungskontrollen einer vorhandenen Paketgruppe ohne die gleiche Verzögerung in den zugehörigen Paketen übernommen.

Diese Themen enthalten Informationen zu Paketgruppen in AWS CodeArtifact.

**Topics**
+ [Erstellen Sie eine Paketgruppe](create-package-group.md)
+ [Eine Paketgruppe anzeigen oder bearbeiten](view-edit-package-group.md)
+ [Löschen Sie eine Paketgruppe](delete-package-group.md)
+ [Herkunftskontrollen für Paketgruppen](package-group-origin-controls.md)
+ [Syntax und Abgleichverhalten der Paketgruppendefinition](package-group-definition-syntax-matching-behavior.md)
+ [Kennzeichnen Sie eine Paketgruppe](package-group-tags.md)

# Erstellen Sie eine Paketgruppe
<a name="create-package-group"></a>

Sie können eine Paketgruppe mit der CodeArtifact Konsole, der AWS Command Line Interface (AWS CLI) oder erstellen CloudFormation. Weitere Informationen zur Verwaltung von CodeArtifact Paketgruppen mit CloudFormation finden Sie unter[CodeArtifact Ressourcen erstellen mit AWS CloudFormation](cloudformation-codeartifact.md). 

## Erstellen Sie eine Paketgruppe (Konsole)
<a name="create-package-group-console"></a>

1. Öffnen Sie die AWS CodeArtifact Konsole unter [https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home).

1. Wählen Sie im Navigationsbereich **Domains** und dann die Domain aus, in der Sie eine Paketgruppe erstellen möchten.

1. Wählen Sie **Paketgruppen** und anschließend **Paketgruppe erstellen** aus.

1. Geben Sie **Package Paketgruppendefinition** die Paketgruppendefinition für Ihre Paketgruppe ein. Die Paketgruppendefinition bestimmt, welche Pakete der Gruppe zugeordnet sind. Sie können die Paketgruppendefinition manuell mit Text eingeben, oder Sie können den visuellen Modus verwenden, um eine Auswahl zu treffen, und die Paketgruppendefinition wird automatisch erstellt.

1. So verwenden Sie den visuellen Modus, um die Paketgruppendefinition zu erstellen:

   1. Wählen Sie **Visual**, um in den visuellen Modus zu wechseln.

   1. Wählen Sie **Package Paketformat** das Format der Pakete aus, die dieser Gruppe zugeordnet werden sollen.

   1. Wählen Sie unter **Namespace (Scope)** die Namespace-Kriterien aus, nach denen gesucht werden soll.
      + **Entspricht: Entspricht** exakt dem angegebenen Namespace. Falls ausgewählt, geben Sie den Namespace ein, für den der Abgleich vorgenommen werden soll.
      + **Leer**: Findet Pakete ohne Namespace.
      + **Beginnt mit einem Wort**: Findet Namespaces, die mit einem bestimmten Wort beginnen. Falls ausgewählt, geben Sie das Präfixwort ein, nach dem gesucht werden soll. Weitere Informationen zu Wörtern und Wortgrenzen finden Sie unter[Wörter, Wortgrenzen und Präfixabgleich](package-group-definition-syntax-matching-behavior.md#package-group-word-boundary-prefix).
      + **Alle**: Entspricht Paketen in allen Namespaces.

   1. Wenn **Gleich**, **Leer** oder **Beginnt mit Wort** ausgewählt ist, wählen Sie im Feld **Paketname** die Kriterien für den Paketnamen aus, nach denen gesucht werden soll.
      + **Entspricht genau:** Entspricht exakt dem angegebenen Paketnamen. Falls ausgewählt, geben Sie den Paketnamen ein, für den ein Abgleich erforderlich ist.
      + **Beginnt mit Präfix**: Findet Pakete, die mit dem angegebenen Präfix beginnen.
      + **Beginnt mit einem Wort**: Findet Pakete, die mit einem bestimmten Wort beginnen. Falls ausgewählt, geben Sie das Präfixwort ein, nach dem gesucht werden soll. Weitere Informationen zu Wörtern und Wortgrenzen finden Sie unter[Wörter, Wortgrenzen und Präfixabgleich](package-group-definition-syntax-matching-behavior.md#package-group-word-boundary-prefix).
      + **Alle**: Entspricht allen Paketen.

   1. Wählen Sie **Weiter**, um die Definition zu überprüfen.

1. Um die Paketgruppendefinition mit Text einzugeben:

   1. Wählen Sie **Text**, um in den Textmodus zu wechseln.

   1. Geben Sie im Feld **Paketgruppendefinition** die Paketgruppendefinition ein. Weitere Informationen zur Syntax der Paketgruppendefinition finden Sie unter[Syntax und Abgleichverhalten der Paketgruppendefinition](package-group-definition-syntax-matching-behavior.md).

   1. Wählen Sie **Weiter**, um die Definition zu überprüfen.

1. Überprüfen Sie unter **Definition überprüfen** die Pakete, die auf der Grundlage der zuvor bereitgestellten Definition in die neue Paketgruppe aufgenommen werden. Wählen Sie nach der Überprüfung **Weiter** aus.

1. Fügen Sie **Package Paketgruppeninformationen** optional eine Beschreibung und eine Kontakt-E-Mail für die Paketgruppe hinzu. Wählen Sie **Weiter**.

1. Konfigurieren Sie unter **Kontrollen zur Paketherkunft** die Ursprungskontrollen, die auf die Pakete in der Gruppe angewendet werden sollen. Weitere Informationen zu den Ursprungskontrollen für Paketgruppen finden Sie unter[Herkunftskontrollen für Paketgruppen](package-group-origin-controls.md).

1. Wählen Sie „**Paketgruppe erstellen“**.

## Erstellen Sie eine Paketgruppe (AWS CLI)
<a name="create-package-group-cli"></a>

Verwenden Sie den `create-package-group` Befehl, um eine Paketgruppe in Ihrer Domain zu erstellen. Geben Sie für die `--package-group` Option die Paketgruppendefinition ein, die bestimmt, welche Pakete der Gruppe zugeordnet sind. Weitere Hinweise zur Syntax der Paketgruppendefinitionen finden Sie unter[Syntax und Abgleichverhalten der Paketgruppendefinition](package-group-definition-syntax-matching-behavior.md).

Falls nicht, konfigurieren Sie das, AWS CLI indem Sie die Schritte unter befolgen[Einrichtung mit AWS CodeArtifact](get-set-up-for-codeartifact.md).

```
aws codeartifact create-package-group \
         --domain my_domain \
         --package-group '/nuget/*' \
         --domain-owner 111122223333 \
         --contact-info contact@email.com \
         --description "a new package group" \
         --tags key=key1,value=value1
```

# Eine Paketgruppe anzeigen oder bearbeiten
<a name="view-edit-package-group"></a>

Sie können eine Liste aller Paketgruppen anzeigen, Details zu einer bestimmten Paketgruppe anzeigen oder die Details oder die Konfiguration einer Paketgruppe mit der CodeArtifact Konsole oder der AWS Command Line Interface (AWS CLI) bearbeiten. 

## Eine Paketgruppe anzeigen oder bearbeiten (Konsole)
<a name="view-edit-package-group-console"></a>

1. Öffnen Sie die AWS CodeArtifact Konsole unter [https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home).

1. Wählen Sie im Navigationsbereich **Domains** und dann die Domain aus, die die Paketgruppe enthält, die Sie anzeigen oder bearbeiten möchten.

1. Wählen Sie **Paketgruppen** und wählen Sie die Paketgruppe aus, die Sie anzeigen oder bearbeiten möchten.

1. Sehen Sie sich unter **Details** Informationen zur Paketgruppe an, einschließlich ihrer übergeordneten Gruppe, Beschreibung, ARN, Kontakt-E-Mail und Kontrollen zur Paketherkunft.

1. Sehen Sie sich unter **Untergruppen** eine Liste der Paketgruppen an, denen diese Gruppe als übergeordnete Gruppe zugeordnet ist. Die Paketgruppen in dieser Liste können Einstellungen von dieser Paketgruppe erben. Weitere Informationen finden Sie unter [Paketgruppenhierarchie und Musterspezifität](package-group-definition-syntax-matching-behavior.md#package-group-hierarchy-pattern-specificity).

1. Sehen Sie sich unter **Pakete** die Pakete an, die zu dieser Paketgruppe gehören, basierend auf der Paketgruppendefinition. In der Spalte **Stärke** können Sie die Stärke der Paketzuordnung sehen. Weitere Informationen finden Sie unter [Paketgruppenhierarchie und Musterspezifität](package-group-definition-syntax-matching-behavior.md#package-group-hierarchy-pattern-specificity).

1. Um die Paketgruppeninformationen zu bearbeiten, wählen Sie **Paketgruppe bearbeiten**.

   1. Aktualisieren Sie **unter Informationen** die Beschreibung oder Kontaktinformationen der Paketgruppe. Sie können die Definition einer Paketgruppe nicht bearbeiten.

   1. Aktualisieren Sie unter **Herkunftskontrollen für Paketgruppen** die Einstellungen für die Ursprungssteuerung der Paketgruppe, die festlegen, wie zugehörige Pakete in Repositorys in der Domain aufgenommen werden können. Weitere Informationen finden Sie unter [Herkunftskontrollen für Paketgruppen](package-group-origin-controls.md).

## Eine Paketgruppe anzeigen oder bearbeiten ()AWS CLI
<a name="view-edit-package-group-cli"></a>

Verwenden Sie die folgenden Befehle, um Paketgruppen mit dem anzuzeigen oder zu bearbeiten AWS CLI. Falls nicht, konfigurieren Sie das, AWS CLI indem Sie die Schritte unter befolgen[Einrichtung mit AWS CodeArtifact](get-set-up-for-codeartifact.md).

Verwenden Sie den `list-package-groups` Befehl, um alle Paketgruppen in einer Domäne anzuzeigen.

```
aws codeartifact list-package-groups \
         --domain my_domain \
         --domain-owner 111122223333
```

Verwenden Sie den `describe-package-group` Befehl, um Details zu einer Paketgruppe anzuzeigen. Weitere Informationen zu Paketgruppendefinitionen finden Sie unter[Syntax und Beispiele für Paketgruppendefinitionen](package-group-definition-syntax-matching-behavior.md#package-group-definition-syntax-examples).

```
aws codeartifact describe-package-group \
         --domain my_domain \
         --domain-owner 111122223333 \
         --package-group '/nuget/*'
```

Verwenden Sie den `list-sub-package-groups` Befehl, um die untergeordneten Paketgruppen einer Paketgruppe anzuzeigen.

```
aws codeartifact list-sub-package-groups \
         --domain my_domain \
         --domain-owner 111122223333 \
         --package-group '/nuget/*' \
```

Verwenden Sie den `get-associated-package-group` Befehl, um die Paketgruppe anzuzeigen, die einem Paket zugeordnet ist. Sie müssen den normalisierten Paketnamen und Namespace für die NuGet Paketformate Python und Swift verwenden. Weitere Informationen darüber, wie die Paketnamen und Namespaces normalisiert werden, finden Sie in der [NuGet](nuget-name-normalization.md)Dokumentation zur Namensnormalisierung von [Python](python-name-normalization.md) und [Swift](swift-name-normalization.md). 

```
aws codeartifact get-associated-package-group \
         --domain my_domain \
         --domain-owner 111122223333 \
         --format npm \
         --package packageName \
         --namespace scope
```

Verwenden Sie den Befehl, um eine Paketgruppe zu bearbeiten. `update-package-group` Dieser Befehl wird verwendet, um die Kontaktinformationen oder die Beschreibung einer Paketgruppe zu aktualisieren. Informationen zu den Einstellungen für die Ursprungssteuerung von Paketgruppen und zum Hinzufügen oder Bearbeiten dieser Einstellungen finden Sie unter[Herkunftskontrollen für Paketgruppen](package-group-origin-controls.md). Weitere Informationen zu Paketgruppendefinitionen finden Sie unter [Syntax und Beispiele für Paketgruppendefinitionen](package-group-definition-syntax-matching-behavior.md#package-group-definition-syntax-examples)

```
aws codeartifact update-package-group \
         --domain my_domain \
         --package-group '/nuget/*' \
         --domain-owner 111122223333 \
         --contact-info contact@email.com \
         --description "updated package group description"
```

# Löschen Sie eine Paketgruppe
<a name="delete-package-group"></a>

Sie können eine Paketgruppe mit der CodeArtifact Konsole oder der AWS Command Line Interface (AWS CLI) löschen.

Beachten Sie beim Löschen von Paketgruppen das folgende Verhalten:
+ Die Stammpaketgruppe,`/*`, kann nicht gelöscht werden.
+ Die Pakete und Paketversionen, die dieser Paketgruppe zugeordnet sind, werden nicht gelöscht.
+ Wenn eine Paketgruppe gelöscht wird, werden die direkt untergeordneten Paketgruppen zu untergeordneten Paketgruppen der direkt übergeordneten Paketgruppe der Paketgruppe. Wenn also eine der untergeordneten Gruppen Einstellungen von der übergeordneten Gruppe erbt, können sich diese Einstellungen ändern.

## Löschen Sie eine Paketgruppe (Konsole)
<a name="delete-package-group-console"></a>

1. Öffnen Sie die AWS CodeArtifact Konsole unter [https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home).

1. Wählen Sie im Navigationsbereich **Domains** und dann die Domain aus, die die Paketgruppe enthält, die Sie anzeigen oder bearbeiten möchten.

1. Wählen Sie **Paketgruppen**.

1. Wählen Sie die Paketgruppe aus, die Sie löschen möchten, und wählen Sie **Löschen**.

1. Geben Sie Löschen in das Feld ein und wählen Sie **Löschen**.

## Löschen Sie eine Paketgruppe (AWS CLI)
<a name="delete-package-group-cli"></a>

Verwenden Sie den `delete-package-group` Befehl, um eine Paketgruppe zu löschen.

```
aws codeartifact delete-package-group \
         --domain my_domain \
         --domain-owner 111122223333 \
         --package-group '/nuget/*'
```

# Herkunftskontrollen für Paketgruppen
<a name="package-group-origin-controls"></a>

Steuerungen zur Paketherkunft werden verwendet, um zu konfigurieren, wie Paketversionen in eine Domäne gelangen können. Sie können Ursprungskontrollen für eine Paketgruppe einrichten, um zu konfigurieren, wie Versionen aller Pakete, die der Paketgruppe zugeordnet sind, in bestimmte Repositorys in der Domäne gelangen können.

Die Einstellungen für die Ursprungssteuerung von Paketgruppen bestehen aus den folgenden Einstellungen:
+ [Einstellungen für Einschränkungen](#package-group-origin-control-settings-restrictions): Diese Einstellungen definieren, ob Pakete CodeArtifact aus veröffentlichten, internen Upstreams oder externen, öffentlichen Repositorys in ein Repository gelangen können.
+ [Listen zulässiger Repositorys](#package-group-origin-control-settings-repositories): Jede Einschränkungseinstellung kann so eingestellt werden, dass bestimmte Repositorien zugelassen werden. Wenn eine Einschränkungseinstellung so eingestellt ist, dass bestimmte Repositorys zugelassen werden, wird für diese Einschränkung eine entsprechende Liste zulässiger Repositorys angezeigt.

**Anmerkung**  
Die Einstellungen für die Ursprungskontrolle für Paketgruppen unterscheiden sich geringfügig von den Einstellungen für die Ursprungskontrolle für einzelne Pakete. Weitere Informationen zu den Origin-Control-Einstellungen für Pakete finden Sie unter[Einstellungen zur Kontrolle des Paketursprungs](package-origin-controls.md#package-origin-control-settings).

## Einstellungen für Einschränkungen
<a name="package-group-origin-control-settings-restrictions"></a>

Die Einschränkungseinstellungen der Ursprungssteuerungseinstellungen einer Paketgruppe bestimmen, wie die mit dieser Gruppe verknüpften Pakete in Repositorys in der Domäne aufgenommen werden können.

### PUBLISH
<a name="package-group-origin-control-settings-restrictions-publish"></a>

Die `PUBLISH` Einstellung konfiguriert, ob Paketversionen mithilfe von Paketmanagern oder ähnlichen Tools direkt in einem beliebigen Repository in der Domäne veröffentlicht werden können.
+ **ZULASSEN**: Paketversionen können direkt in allen Repositorien veröffentlicht werden.
+ **BLOCK**: Paketversionen können nicht direkt in einem Repository veröffentlicht werden.
+ **ALLOW\$1SPECIFIC\$1REPOSITORIES: Paketversionen können nur direkt in Repositorys** veröffentlicht werden, die in der Liste der erlaubten Repositorys für die Veröffentlichung angegeben sind.
+ **INHERIT**: Die `PUBLISH` Einstellung wird von der ersten übergeordneten Paketgruppe mit einer Einstellung übernommen, bei der dies nicht der Fall ist. `INHERIT`

### EXTERNAL\$1UPSTREAM
<a name="package-group-origin-control-settings-restrictions-ext-upstream"></a>

Die `EXTERNAL_UPSTREAM` Einstellung konfiguriert, ob Paketversionen aus externen, öffentlichen Repositorys aufgenommen werden können, wenn sie von einem Paketmanager angefordert werden. Eine Liste der unterstützten externen Repositorys finden Sie unter. [Unterstützte Repositorys für externe Verbindungen](external-connection.md#supported-public-repositories)
+ **ZULASSEN**: Jede Paketversion kann von einer öffentlichen Quelle mit einer externen Verbindung in alle Repositorys aufgenommen werden.
+ **BLOCK**: Paketversionen können nicht von einer öffentlichen Quelle mit einer externen Verbindung in ein Repository aufgenommen werden.
+ **ALLOW\$1SPECIFIC\$1REPOSITORIES**: Paketversionen können nur aus einer öffentlichen Quelle in Repositorys aufgenommen werden, die in der Liste der zulässigen Repositorys für externe Upstreams angegeben sind.
+ **INHERIT**: Die `EXTERNAL_UPSTREAM` Einstellung wird von der ersten übergeordneten Paketgruppe übernommen, mit einer Einstellung, die dies nicht ist. `INHERIT`

### INTERNAL\$1UPSTREAM
<a name="package-group-origin-control-settings-restrictions-int-upstream"></a>

Die `INTERNAL_UPSTREAM` Einstellung konfiguriert, ob Paketversionen von internen Upstream-Repositorys in derselben CodeArtifact Domäne beibehalten werden können, wenn sie von einem Paketmanager angefordert werden.
+ **ALLOW**: Jede Paketversion kann aus anderen CodeArtifact Repositorys, die als Upstream-Repositorys konfiguriert sind, beibehalten werden.
+ **BLOCK**: Paketversionen können nicht aus anderen CodeArtifact Repositorys aufbewahrt werden, die als Upstream-Repositorys konfiguriert sind.
+ ** CodeArtifact ALLOW\$1SPECIFIC\$1REPOSITORIES: Paketversionen können nur von anderen Repositorien**, die als Upstream-Repositorys konfiguriert sind, in Repositorys aufbewahrt werden, die in der Liste der zulässigen Repositorys für interne Upstreams angegeben sind.
+ **INHERIT: Die `INTERNAL_UPSTREAM` Einstellung wird von der ersten übergeordneten** Paketgruppe übernommen, mit einer Einstellung, die dies nicht ist. `INHERIT`

## Listen zulässiger Repositorys
<a name="package-group-origin-control-settings-repositories"></a>

Wenn eine Einschränkungseinstellung als konfiguriert ist`ALLOW_SPECIFIC_REPOSITORIES`, enthält die Paketgruppe eine zugehörige Liste zulässiger Repositorys, die eine Liste der Repositorys enthält, die für diese Einschränkungseinstellung zulässig sind. Daher enthält eine Paketgruppe zwischen 0 und 3 Listen zulässiger Repositorys, eine für jede Einstellung, die als konfiguriert ist. `ALLOW_SPECIFIC_REPOSITORIES`

Wenn Sie ein Repository zur Liste der zulässigen Repositorys einer Paketgruppe hinzufügen, müssen Sie angeben, zu welcher Liste zulässiger Repositorys es hinzugefügt werden soll.

Die möglichen Listen zulässiger Repositorys lauten wie folgt:
+ `EXTERNAL_UPSTREAM`: Erlaubt oder blockiert die Aufnahme von Paketversionen aus externen Repositorys im hinzugefügten Repository.
+ `INTERNAL_UPSTREAM`: Erlaubt oder blockiert das Abrufen von Paketversionen aus einem anderen CodeArtifact Repository im hinzugefügten Repository.
+ `PUBLISH`: Erlaubt oder blockiert die direkte Veröffentlichung von Paketversionen von Paketmanagern im hinzugefügten Repository.

## Bearbeiten der Origin Control-Einstellungen für Paketgruppen
<a name="package-group-edit-origin-controls"></a>

Gehen Sie wie folgt vor, um Ursprungskontrollen für eine Paketgruppe hinzuzufügen oder zu bearbeiten. Informationen zu den Einstellungen für die Ursprungssteuerung von Paketgruppen finden Sie unter [Einstellungen für Einschränkungen](#package-group-origin-control-settings-restrictions) und[Listen zulässiger Repositorys](#package-group-origin-control-settings-repositories).

**So fügen Sie Origin Controls (CLI) für Paketgruppen hinzu oder bearbeiten sie**

1. Falls nicht, konfigurieren Sie das, AWS CLI indem Sie die Schritte unter befolgen[Einrichtung mit AWS CodeArtifact](get-set-up-for-codeartifact.md).

1. Verwenden Sie den `update-package-group-origin-configuration` Befehl, um Steuerelemente für den Paketursprung hinzuzufügen oder zu bearbeiten.
   + Geben Sie für `--domain` die CodeArtifact Domäne ein, die die Paketgruppe enthält, die Sie aktualisieren möchten.
   + Geben Sie für `--domain-owner` die Kontonummer des Domaininhabers ein.
   + Geben Sie für `--package-group` die Paketgruppe ein, die Sie aktualisieren möchten.
   + Geben Sie für `--restrictions` Schlüssel-Wert-Paare ein, die die Einschränkungen der Ursprungskontrolle darstellen.
   + Geben Sie für ein JSON-Objekt ein`--add-allowed-repositories`, das den Einschränkungstyp und den Repository-Namen enthält, um es der entsprechenden Liste der zulässigen Repositorys für die Einschränkung hinzuzufügen.
   + Geben Sie für ein JSON-Objekt ein`--remove-allowed-repositories`, das den Einschränkungstyp und den Repository-Namen enthält, die aus der entsprechenden Liste der zulässigen Repositorys für die Einschränkung entfernt werden sollen.

   ```
   aws codeartifact update-package-group-origin-configuration \
      --domain my_domain \
      --domain-owner 111122223333 \
      --package-group '/nuget/*' \
      --restrictions INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES \
      --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo \
      --remove-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2
   ```

   Im folgenden Beispiel werden mehrere Einschränkungen und mehrere Repositorys in einem Befehl hinzugefügt.

   ```
   aws codeartifact update-package-group-origin-configuration \
      --domain my_domain \
      --domain-owner 111122223333 \
      --package-group '/nuget/*' \
      --restrictions PUBLISH=BLOCK,EXTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES,INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES \
      --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2 \
      --remove-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=my_repo2
   ```

## Konfigurationsbeispiele für die Ursprungssteuerung von Paketgruppen
<a name="package-group-origin-control-examples"></a>

Die folgenden Beispiele zeigen Konfigurationen der Paketursprungssteuerung für gängige Paketverwaltungsszenarien.

### Zulassen, dass Pakete mit privaten Namen veröffentlicht, aber nicht aufgenommen werden
<a name="package-group-origin-control-examples-one"></a>

Dieses Szenario ist wahrscheinlich ein übliches Szenario in der Paketverwaltung:
+ Erlauben Sie, dass Pakete mit privaten Namen von Paketmanagern in Repositorys in Ihrer Domain veröffentlicht werden, und verhindern Sie, dass sie von externen, öffentlichen Repositorys in Repositorys in Ihrer Domain aufgenommen werden.
+ Erlauben Sie, dass alle anderen Pakete aus externen, öffentlichen Repositorys in Repositorys in Ihrer Domain aufgenommen werden, und verhindern Sie, dass sie von Paketmanagern in Repositorys in Ihrer Domain veröffentlicht werden.

**Um dies zu erreichen, sollten Sie eine Paketgruppe mit einem Muster konfigurieren, das die privaten Namen und die Ursprungseinstellungen **PUBLISH: ALLOW, EXTERNAL\$1UPSTREAM:** **BLOCK und INTERNAL\$1UPSTREAM:** ALLOW enthält.** Dadurch wird sichergestellt, dass Pakete mit privaten Namen direkt veröffentlicht, aber nicht aus externen Repositorys aufgenommen werden können.

Die folgenden AWS CLI Befehle erstellen und konfigurieren eine Paketgruppe mit Einstellungen für die Quellenbeschränkung, die dem gewünschten Verhalten entsprechen:

Um die Paketgruppe zu erstellen:

```
aws codeartifact create-package-group \
   --domain my_domain \
   --package-group /npm/space/anycompany~ \
   --domain-owner 111122223333 \
   --contact-info contact@email.com | URL \
   --description "my package group"
```

Um die Ursprungskonfiguration der Paketgruppe zu aktualisieren:

```
aws codeartifact update-package-group-origin-configuration \
   --domain my_domain \
   --domain-owner 111122223333 \
   --package-group '/npm/space/anycompany~' \
   --restrictions PUBLISH=ALLOW,EXTERNAL_UPSTREAM=BLOCK,INTERNAL_UPSTREAM=ALLOW
```

### Erlaubt die Aufnahme aus externen Repositorys über ein Repository
<a name="package-group-origin-control-examples-ingestion-one-repo"></a>

In diesem Szenario hat Ihre Domain mehrere Repositorys. Von diesen Repositorys `repoA` hat eine Upstream-Verbindung zu dem öffentlichen Repository`repoB`, das eine externe Verbindung zum öffentlichen Repository hat`npmjs.com`, wie hier gezeigt:

`repoA --> repoB --> npmjs.com`

Sie möchten die Aufnahme von Paketen aus einer bestimmten Paketgruppe zulassen, zwar von dort `/npm/space/anycompany~` aus `npmjs.com``repoA`, aber nur durch. `repoB` Sie möchten auch die Aufnahme von Paketen, die der Paketgruppe zugeordnet sind, in andere Repositorys in Ihrer Domain blockieren und die direkte Veröffentlichung von Paketen mit Paketmanagern blockieren. Um dies zu erreichen, erstellen und konfigurieren Sie die Paketgruppe wie folgt:

**Ursprungseinschränkungseinstellungen für **PUBLISH: BLOCK und EXTERNAL\$1UPSTREAM:** **ALLOW\$1SPECIFIC\$1REPOSITORIES und INTERNAL\$1UPSTREAM: ALLOW\$1SPECIFIC\$1REPOSITORIES**.**

`repoA`und zur Liste der entsprechenden zulässigen Repositorys hinzugefügt: `repoB`
+ `repoA`sollte der `INTERNAL_UPSTREAM` Liste hinzugefügt werden, da es Pakete von seinem internen Upstream erhält,`repoB`.
+ `repoB`sollte der `EXTERNAL_UPSTREAM` Liste hinzugefügt werden, da es Pakete aus dem externen Repository bezieht,`npmjs.com`.

Die folgenden AWS CLI Befehle erstellen und konfigurieren eine Paketgruppe mit Ursprungseinschränkungseinstellungen, die dem gewünschten Verhalten entsprechen:

Um die Paketgruppe zu erstellen:

```
aws codeartifact create-package-group \
   --domain my_domain \
   --package-group /npm/space/anycompany~ \
   --domain-owner 111122223333 \
   --contact-info contact@email.com | URL \
   --description "my package group"
```

Um die Ursprungskonfiguration der Paketgruppe zu aktualisieren:

```
aws codeartifact update-package-group-origin-configuration \
   --domain my_domain \
   --domain-owner 111122223333 \
   --package-group /npm/space/anycompany~ \
   --restrictions PUBLISH=BLOCK,EXTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES,INTERNAL_UPSTREAM=ALLOW_SPECIFIC_REPOSITORIES \
   --add-allowed-repositories originRestrictionType=INTERNAL_UPSTREAM,repositoryName=repoA originRestrictionType=EXTERNAL_UPSTREAM,repositoryName=repoB
```

## Wie die Einstellungen für die Ursprungssteuerung von Paketgruppen mit den Einstellungen für die Paketursprungskontrolle interagieren
<a name="package-group-origin-control-settings-interaction"></a>

Da Pakete über Einstellungen für die Ursprungskontrolle und die zugehörigen Paketgruppen über Einstellungen für die Ursprungskontrolle verfügen, ist es wichtig zu verstehen, wie diese beiden unterschiedlichen Einstellungen miteinander interagieren. Informationen zur Interaktion zwischen den Einstellungen finden Sie unter[Wie die Kontrollen zur Herkunft von Paketen mit den Ursprungskontrollen für Paketgruppen interagieren](package-origin-controls.md#package-origin-controls-interaction-package-groups).

# Syntax und Abgleichverhalten der Paketgruppendefinition
<a name="package-group-definition-syntax-matching-behavior"></a>

Dieses Thema enthält Informationen zur Definition von Paketgruppen, zum Verhalten beim Mustervergleich, zur Stärke der Paketzuordnungen und zur Paketgruppenhierarchie.

**Contents**
+ [Syntax und Beispiele für Paketgruppendefinitionen](#package-group-definition-syntax-examples)
  + [Definition und Normalisierung von Paketgruppen](#package-group-definition-syntax-examples-normalization)
  + [Namespaces in Paketgruppendefinitionen](#package-group-definition-syntax-examples-namespaces)
+ [Paketgruppenhierarchie und Musterspezifität](#package-group-hierarchy-pattern-specificity)
+ [Wörter, Wortgrenzen und Präfixabgleich](#package-group-word-boundary-prefix)
+ [Groß-/Kleinschreibung](#package-group-case-sensitivity)
+ [Starkes und schwaches Spiel](#package-group-strong-and-weak-match)
+ [Zusätzliche Varianten](#package-group-additional-variations)

## Syntax und Beispiele für Paketgruppendefinitionen
<a name="package-group-definition-syntax-examples"></a>

 Die Mustersyntax für die Definition von Paketgruppen folgt weitgehend der Formatierung von Paketpfaden. Ein Paketpfad wird aus den Koordinatenkomponenten eines Pakets (Format, Namespace und Name) erstellt, indem am Anfang ein Schrägstrich hinzugefügt und die einzelnen Komponenten durch einen Schrägstrich getrennt werden. **Der Paketpfad für das im Namespace-Space benannte npm-Paket lautet beispielsweise *anycompany-ui-components*/-ui-components. npm/space/anycompany**

Ein Paketgruppenmuster folgt derselben Struktur wie ein Paketpfad, außer dass Komponenten, die nicht als Teil der Gruppendefinition angegeben sind, weggelassen werden und das Muster mit einem Suffix abgeschlossen wird. Das enthaltene Suffix bestimmt das Übereinstimmungsverhalten des Musters wie folgt:
+ Ein `$` Suffix entspricht der vollständigen Paketkoordinate.
+ Ein `~` Suffix entspricht einem Präfix.
+ Ein `*` Suffix entspricht allen Werten der zuvor definierten Komponente.

Hier sind Beispielmuster für jede der zulässigen Kombinationen:

1. Alle Paketformate: `/*`

1. Ein bestimmtes Paketformat: `/npm/*`

1. Paketformat und Namespace-Präfix: `/maven/com.anycompany~`

1. Paketformat und Namespace: `/npm/space/*`

1. Paketformat, Namespace und Namenspräfix: `/npm/space/anycompany-ui~`

1. Paketformat, Namespace und Name: `/maven/org.apache.logging.log4j/log4j-core$`

Wie in den obigen Beispielen gezeigt, wird das `~` Suffix am Ende eines Namespaces oder Namens hinzugefügt, um eine Präfixübereinstimmung darzustellen. Es `*` steht hinter einem Schrägstrich, wenn es verwendet wird, um alle Werte für die nächste Komponente im Pfad abzugleichen (entweder alle Formate, alle Namespaces oder alle Namen).

### Definition und Normalisierung von Paketgruppen
<a name="package-group-definition-syntax-examples-normalization"></a>

CodeArtifact normalisiert Python NuGet - und Swift-Paketnamen und normalisiert Swift-Paketnamespaces, bevor sie gespeichert werden. CodeArtifact verwendet diese normalisierten Namen, wenn Pakete mit Paketgruppendefinitionen abgeglichen werden. Daher müssen Paketgruppen, die einen Namespace oder Namen in diesen Formaten enthalten, den normalisierten Namespace und Namen verwenden. Weitere Informationen darüber, wie die Paketnamen und Namespaces normalisiert werden, finden Sie in der [NuGet](nuget-name-normalization.md)Dokumentation zur Namensnormalisierung von [Python](python-name-normalization.md) und [Swift](swift-name-normalization.md).

### Namespaces in Paketgruppendefinitionen
<a name="package-group-definition-syntax-examples-namespaces"></a>

Bei Paketen oder Paketformaten ohne Namespace (Python und NuGet) dürfen Paketgruppen keinen Namespace enthalten. Die Paketgruppendefinition für diese Paketgruppen enthält einen leeren Namespace-Abschnitt. Der Pfad für das Python-Paket mit dem Namen requests lautet beispielsweise **/python//requests**.

Bei Paketen oder Paketformaten mit einem Namespace (Maven, Generic und Swift) muss der Namespace enthalten sein, wenn der Paketname enthalten ist. Für das Swift-Paketformat wird der normalisierte Paket-Namespace verwendet. Weitere Hinweise zur Normalisierung von Swift-Paketnamespaces finden Sie unter. [Schnelle Normalisierung von Paketnamen und Namespace](swift-name-normalization.md)

## Paketgruppenhierarchie und Musterspezifität
<a name="package-group-hierarchy-pattern-specificity"></a>

Die Pakete, die sich in einer Paketgruppe befinden oder ihr „zugeordnet“ sind, sind Pakete mit einem Paketpfad, der dem Muster der Gruppe entspricht, aber nicht dem Muster einer spezifischeren Gruppe entspricht. Wenn beispielsweise die Paketgruppen `/npm/*` und angegeben sind`/npm/space/*`, ist der Paketpfad */npm//react* der ersten Gruppe (`/npm/*`) zugeordnet, während*/npm/space/aui.components und/npm/space/amplify**-ui-core* der zweiten Gruppe () zugeordnet sind. `/npm/space/*` Obwohl ein Paket mehreren Gruppen entsprechen kann, ist jedes Paket nur einer einzigen Gruppe zugeordnet, wobei die spezifischste Gruppe zutrifft, und nur die Konfiguration dieser einen Gruppe gilt für das Paket.

Wenn ein Paketpfad mehreren Mustern entspricht, kann das „spezifischere“ Muster als das am längsten übereinstimmende Muster angesehen werden. Alternativ ist das spezifischere Muster dasjenige, das einer richtigen Teilmenge der Pakete entspricht, die dem weniger spezifischen Muster entsprechen. Aus unserem vorherigen Beispiel geht hervor, dass jedes Paket, das übereinstimmt`/npm/*`, `/npm/space/*` auch übereinstimmt, aber das Gegenteil ist nicht der Fall, weshalb `/npm/space/*` das Muster spezifischer ist, weil es eine richtige Teilmenge von ist. `/npm/*` Da es sich bei einer Gruppe um eine Teilmenge einer anderen Gruppe handelt, entsteht eine Hierarchie, in der `/npm/space/*` sich eine Untergruppe der übergeordneten Gruppe befindet. `/npm/*`

Obwohl nur die Konfiguration der spezifischsten Paketgruppe für ein Paket gilt, kann diese Gruppe so konfiguriert werden, dass sie von der Konfiguration der übergeordneten Gruppe erbt.

## Wörter, Wortgrenzen und Präfixabgleich
<a name="package-group-word-boundary-prefix"></a>

Bevor wir uns mit dem Präfixabgleich befassen, wollen wir einige Schlüsselbegriffe definieren:
+ Ein *Wort*, ein Buchstabe oder eine Zahl, gefolgt von null oder mehr Buchstaben, Zahlen oder Markierungszeichen (wie Akzente, Umlaute usw.).
+ Eine *Wortgrenze* befindet sich am Ende eines Wortes, wenn ein Zeichen erreicht wird, das kein Wort ist. Bei Sonderzeichen handelt es sich um Satzzeichen wie`.`, und. `-` `_`

Insbesondere lautet das Regex-Muster für ein Wort`[\p{L}\p{N}][\p{L}\p{N}\p{M}]*`, das wie folgt aufgeteilt werden kann:
+ `\p{L}`steht für einen beliebigen Buchstaben.
+ `\p{N}`steht für eine beliebige Zahl.
+ `\p{M}`steht für ein beliebiges Markierungszeichen wie Akzente, Umlaute usw.

Steht daher `[\p{L}\p{N}]` für eine Zahl oder einen Buchstaben und `[\p{L}\p{N}\p{M}]*` steht für null oder mehr Buchstaben, Zahlen oder Markierungszeichen. Am Ende jeder Übereinstimmung dieses regulären Musters befindet sich eine Wortgrenze.

**Anmerkung**  
Der Abgleich von Wortgrenzen basiert auf dieser Definition eines „Wortes“. Es basiert nicht auf Wörtern, die in einem Wörterbuch definiert sind, oder CameCase. Zum Beispiel gibt es in `oneword` oder keine Wortgrenze`OneWord`.

Nachdem das Wort und die Wortgrenze nun definiert sind, können wir sie verwenden, um den Präfixabgleich in zu beschreiben CodeArtifact. Um anzugeben, dass ein Präfix an einer Wortgrenze übereinstimmt, wird nach einem Wortzeichen ein Übereinstimmungszeichen (`~`) verwendet. Das Muster `/npm/space/foo~` entspricht beispielsweise den Paketpfaden `/npm/space/foo` und`/npm/space/foo-bar`, aber nicht `/npm/space/food` oder`/npm/space/foot`.

Ein Platzhalter (`*`) muss anstelle von verwendet werden, `~` wenn einem Zeichen gefolgt wird, das kein Wort ist, wie im Muster. `/npm/*`

## Groß-/Kleinschreibung
<a name="package-group-case-sensitivity"></a>

Bei Paketgruppendefinitionen wird zwischen Groß- und Kleinschreibung unterschieden, was bedeutet, dass Muster, die sich nur durch die Groß- und Kleinschreibung unterscheiden, als separate Paketgruppen existieren können. Beispielsweise kann ein Benutzer separate Paketgruppen mit den Mustern und `/npm//asyncstorage$` für die drei separaten Pakete erstellen `/npm//AsyncStorage$``/npm//asyncStorage$`, die in der öffentlichen Registrierung von npm vorhanden sind:, asyncStorage *AsyncStorage*, *asyncstorage*, die sich nur durch die Groß- und *Kleinschreibung unterscheiden*. 

Auch wenn die Groß- und Kleinschreibung wichtig ist, werden Pakete CodeArtifact trotzdem einer Paketgruppe zugeordnet, wenn das Paket eine Variation des Musters aufweist, die sich von Fall zu Fall unterscheidet. Wenn ein Benutzer die `/npm//AsyncStorage$` Paketgruppe erstellt, ohne die anderen beiden oben aufgeführten Gruppen zu erstellen, werden alle Varianten des Namens zwischen Groß- und Kleinschreibung *AsyncStorage*, einschließlich *AsyncStorage* und *Asyncstorage*, der Paketgruppe zugeordnet. Wie im nächsten Abschnitt beschrieben, [Starkes und schwaches Spiel](#package-group-strong-and-weak-match) werden diese Variationen jedoch anders behandelt als das *AsyncStorage*, was genau dem Muster entspricht. 

## Starkes und schwaches Spiel
<a name="package-group-strong-and-weak-match"></a>

Die Informationen im vorherigen Abschnitt,, besagen[Groß-/Kleinschreibung](#package-group-case-sensitivity), dass bei Paketgruppen zwischen Groß- und Kleinschreibung unterschieden wird. Anschließend wird erklärt, dass sie nicht zwischen Groß- und Kleinschreibung unterscheiden. Das liegt daran, dass in CodeArtifact Paketgruppendefinitionen ein Konzept von starker Übereinstimmung (oder exakter Übereinstimmung) und schwacher Übereinstimmung (oder Variantenübereinstimmung) verwendet wird. Eine starke Übereinstimmung liegt vor, wenn das Paket dem Muster exakt und ohne jegliche Variation entspricht. Eine schwache Übereinstimmung liegt vor, wenn das Paket einer Variante des Musters entspricht, z. B. einer anderen Groß- und Kleinschreibung. Das Verhalten bei schwacher Übereinstimmung verhindert, dass Pakete, bei denen es sich um Varianten des Musters einer Paketgruppe handelt, zu einer allgemeineren Paketgruppe zusammengefasst werden. Wenn es sich bei einem Paket um eine Variante (schwache Übereinstimmung) des Musters handelt, das am genauesten zu der Gruppe passt, wird das Paket zwar der Gruppe zugeordnet, aber das Paket wird blockiert, anstatt die Konfiguration der Ursprungsverwaltung der Gruppe anzuwenden, wodurch verhindert wird, dass neue Versionen des Pakets aus Upstreams abgerufen oder veröffentlicht werden. Dieses Verhalten reduziert das Risiko von Angriffen auf die Lieferkette, die aus einer Verwechselung der Abhängigkeiten von Paketen mit nahezu identischen Namen resultieren.

Um das Verhalten bei schwachen Übereinstimmungen zu veranschaulichen, nehmen wir an, dass die Paketgruppe die Aufnahme `/npm/*` zulässt und die Veröffentlichung blockiert. Eine spezifischere Paketgruppe,, ist so konfiguriert`/npm//anycompany-spicy-client$`, dass sie die Aufnahme blockiert und die Veröffentlichung ermöglicht. Das angegebene *anycompany-spicy-client*Paket entspricht stark der Paketgruppe, die die Veröffentlichung von Paketversionen ermöglicht und die Aufnahme von Paketversionen blockiert. Die einzige Groß-/Kleinschreibung des Paketnamens, der veröffentlicht werden darf *anycompany-spicy-client*, ist, weil er dem Muster der Paketdefinition sehr gut entspricht. Bei einer anderen Variante von Groß- und Kleinschreibung, z. B. *AnyCompany-spicy-client*, ist die Veröffentlichung gesperrt, da es sich um eine schwache Übereinstimmung handelt. Noch wichtiger ist, dass die Paketgruppe die Aufnahme aller Varianten von Groß- und Kleinschreibung blockiert, nicht nur des im Muster verwendeten Kleinbuchstabennamens, wodurch das Risiko einer Konfusion von Abhängigkeiten verringert wird.

## Zusätzliche Varianten
<a name="package-group-additional-variations"></a>

Neben Unterschieden zwischen Groß- und Kleinschreibung werden beim schwachen Abgleich auch Unterschiede in der Reihenfolge von Bindestrichen`-`, Punkten `.``_`, Unterstrichen und verwechselbaren Zeichen (z. B. ähnlich aussehende Zeichen aus unterschiedlichen Alphabeten) ignoriert. Bei der Normalisierung, die für schwache Übereinstimmungen verwendet wird, wird Groß- und Kleinschreibung (ähnlich der Konvertierung in Kleinbuchstaben) CodeArtifact durchgeführt, Abfolgen von Bindestrich-, Punkt- und Unterstrichzeichen durch einen einzelnen Punkt ersetzt und verwirrende Zeichen normalisiert.

Bei schwachem Abgleich werden Bindestriche, Punkte und Unterstriche als gleichwertig behandelt, aber nicht vollständig ignoriert. *Das bedeutet, dass *foo-bar, foo.bar**, foo.. bar* *und foo\$1bar* *allesamt schwache Match-Entsprechungen sind, foobar* jedoch nicht.* Obwohl mehrere öffentliche Repositorien Maßnahmen ergreifen, um diese Art von Variationen zu verhindern, macht der Schutz, den öffentliche Repositorien bieten, diese Funktion von Paketgruppen nicht unnötig. Beispielsweise verhindern öffentliche Repositorien wie die Registrierung für die öffentliche Registrierung von npm nur dann neue Varianten des Pakets mit dem Namen *my-package, wenn *my-package* dort bereits* veröffentlicht ist. *Wenn *my-package* ein internes Paket ist und eine Paketgruppe erstellt `/npm//my-package$` wird, die die Veröffentlichung ermöglicht und die Aufnahme blockiert, möchten Sie *my-package wahrscheinlich nicht in der öffentlichen Registrierung von npm veröffentlichen, um zu verhindern, dass eine Variante wie my.package* zugelassen wird.*

**Während einige Paketformate wie Maven diese Zeichen unterschiedlich behandeln (Maven behandelt sie als Trennzeichen für die Namespace-Hierarchie, aber nicht `-` oder`_`), könnte etwas `.` wie com.act-on dennoch mit com.act.on verwechselt werden.**

**Anmerkung**  
Beachten Sie, dass immer dann, wenn mehrere Varianten einer Paketgruppe zugeordnet sind, ein Administrator eine neue Paketgruppe für eine bestimmte Variante erstellen kann, um ein anderes Verhalten für diese Variante zu konfigurieren. 

# Kennzeichnen Sie eine Paketgruppe in CodeArtifact
<a name="package-group-tags"></a>

Tags sind mit AWS-Ressourcen verknüpfte Schlüssel-Wert-Paare. Sie können Tags auf Ihre Paketgruppen in anwenden CodeArtifact. Informationen zur Kennzeichnung von CodeArtifact Ressourcen, zu Anwendungsfällen, Einschränkungen für Tagschlüssel und -werte sowie zu unterstützten Ressourcentypen finden Sie unter[Taggen von -Ressourcen](tag-resources.md).

Sie können die CLI verwenden, um Tags anzugeben, wenn Sie eine Paketgruppe erstellen oder den Wert von Tags einer vorhandenen Paketgruppe hinzufügen, entfernen oder aktualisieren.

## Tag-Paketgruppen (CLI)
<a name="package-group-tags-cli"></a>

Sie können die CLI verwenden, um Paketgruppen-Tags zu verwalten.

Falls nicht, konfigurieren Sie das, AWS CLI indem Sie die Schritte unter befolgen[Einrichtung mit AWS CodeArtifact](get-set-up-for-codeartifact.md).

**Tipp**  
Um Tags hinzuzufügen, müssen Sie den Amazon-Ressourcennamen (ARN) der Paketgruppe angeben. Um den ARN der Paketgruppe abzurufen, führen Sie den `describe-package-group` folgenden Befehl aus:  

```
aws codeartifact describe-package-group \
   --domain my_domain \
   --package-group /npm/scope/anycompany~ \
   --query packageGroup.arn
```

**Topics**
+ [Hinzufügen von Tags zu einer Paketgruppe (CLI)](#package-group-tags-add-cli)
+ [Tags für eine Paketgruppe anzeigen (CLI)](#package-group-tags-list-cli)
+ [Tags für eine Paketgruppe bearbeiten (CLI)](#package-group-tags-edit-cli)
+ [Tags aus einer Paketgruppe entfernen (CLI)](#package-group-tags-delete-cli)

### Hinzufügen von Tags zu einer Paketgruppe (CLI)
<a name="package-group-tags-add-cli"></a>

Sie können Tags zu Paketgruppen hinzufügen, wenn sie erstellt werden, oder zu einer vorhandenen Paketgruppe. Informationen zum Hinzufügen von Tags zu einer Paketgruppe bei deren Erstellung finden Sie unter[Erstellen Sie eine Paketgruppe](create-package-group.md).

Um einer vorhandenen Paketgruppe ein Tag hinzuzufügen AWS CLI, führen Sie im Terminal oder in der Befehlszeile den **tag-resource** Befehl aus und geben Sie den Amazon-Ressourcennamen (ARN) der Paketgruppe an, der Sie Tags hinzufügen möchten, sowie den Schlüssel und den Wert des Tags, das Sie hinzufügen möchten. Informationen zur Paketgruppe finden ARNs Sie unter[Paketgruppe ARNs](auth-and-access-control-permissions-reference.md#package-group-arns).

Sie können einer Paketgruppe mehr als ein Tag hinzufügen. Um beispielsweise eine Paketgruppe */npm/scope/anycompany\$1* mit zwei Tags zu taggen, einem Tag-Schlüssel *key1* mit dem Tag-Wert von *value1* und einem Tag-Schlüssel *key2* mit dem Tag-Wert von*value2*:

```
aws codeartifact tag-resource \
   --resource-arn arn:aws:codeartifact:us-west-2:123456789012:package-group/my_domain/npm/scope/anycompany~ \
   --tags key=key1,value=value1 key=key2,value=value2
```

Bei Erfolg hat dieser Befehl keine Ausgabe.

### Tags für eine Paketgruppe anzeigen (CLI)
<a name="package-group-tags-list-cli"></a>

Gehen Sie wie folgt vor AWS CLI , um die AWS Tags für eine Paketgruppe anzuzeigen. Wenn keine Tags hinzugefügt wurden, ist die zurückgegebene Liste leer.

Führen Sie im Terminal oder in der Befehlszeile den **list-tags-for-resource** Befehl mit dem Amazon-Ressourcennamen (ARN) der Paketgruppe aus. Informationen zur Paketgruppe finden ARNs Sie unter[Paketgruppe ARNs](auth-and-access-control-permissions-reference.md#package-group-arns).

Um beispielsweise eine Liste von Tag-Schlüsseln und Tag-Werten für eine Paketgruppe anzuzeigen, die mit einem ARN-Wert von */npm/scope/anycompany\$1* benannt ist `arn:aws:codeartifact:us-west-2:123456789012:package-group/my_domain/npm/scope/anycompany~`

```
aws codeartifact list-tags-for-resource \
   --resource-arn arn:aws:codeartifact:us-west-2:123456789012:package-group/my_domain/npm/scope/anycompany~
```

Bei erfolgreicher Ausführung gibt dieser Befehl etwa wie folgt aussehende Informationen zurück:

```
{
    "tags": {
        "key1": "value1",
        "key2": "value2"
    }
}
```

### Tags für eine Paketgruppe bearbeiten (CLI)
<a name="package-group-tags-edit-cli"></a>

Gehen Sie wie folgt vor AWS CLI , um ein Tag für eine Paketgruppe zu bearbeiten. Sie können den Wert für einen vorhandenen Schlüssel ändern oder einen anderen Schlüssel hinzufügen. Sie können Tags auch aus einer Paketgruppe entfernen, wie im nächsten Abschnitt gezeigt.

Führen Sie im Terminal oder in der Befehlszeile den **tag-resource** Befehl aus und geben Sie den ARN der Paketgruppe an, in der Sie ein Tag aktualisieren möchten, und geben Sie den Tag-Schlüssel und den Tag-Wert an. Hinweise zur Paketgruppe finden ARNs Sie unter[Paketgruppe ARNs](auth-and-access-control-permissions-reference.md#package-group-arns).

```
aws codeartifact tag-resource \
   --resource-arn arn:aws:codeartifact:us-west-2:123456789012:package-group/my_domain/npm/scope/anycompany~ \
   --tags key=key1,value=newvalue1
```

Bei Erfolg hat dieser Befehl keine Ausgabe.

### Tags aus einer Paketgruppe entfernen (CLI)
<a name="package-group-tags-delete-cli"></a>

Gehen Sie wie folgt vor, AWS CLI um mit dem ein Tag aus einer Paketgruppe zu entfernen.

**Anmerkung**  
Wenn Sie eine Paketgruppe löschen, werden alle Tag-Zuordnungen aus der gelöschten Paketgruppe entfernt. Sie müssen Tags nicht entfernen, bevor Sie eine Paketgruppe löschen.

Führen Sie den Befehl im Terminal oder in der **untag-resource** Befehlszeile aus und geben Sie den ARN der Paketgruppe an, aus der Sie Tags entfernen möchten, und den Tagschlüssel des Tags, das Sie entfernen möchten. Hinweise zur Paketgruppe finden ARNs Sie unter[Paketgruppe ARNs](auth-and-access-control-permissions-reference.md#package-group-arns).

Um beispielsweise mehrere Tags aus einer Paketgruppe zu entfernen*/npm/scope/anycompany\$1*, mit den Tag-Schlüsseln *key1* und*key2*:

```
aws codeartifact untag-resource \
   --resource-arn arn:aws:codeartifact:us-west-2:123456789012:package-group/my_domain/npm/scope/anycompany~ \
   --tag-keys key1 key2
```

Bei Erfolg hat dieser Befehl keine Ausgabe. Nach dem Entfernen von Tags können Sie mit dem `list-tags-for-resource` Befehl die verbleibenden Tags in der Paketgruppe anzeigen.