

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.

# Eine Paketversion mit Upstream-Repositorys anfordern
<a name="repo-upstream-behavior"></a>

 Wenn ein Client (zum Beispiel npm) eine Paketversion von einem CodeArtifact Repository mit dem Namen anfordert`my_repo`, das mehrere Upstream-Repositorys hat, kann Folgendes passieren: 
+  Wenn sie die angeforderte Paketversion `my_repo` enthält, wird sie an den Client zurückgegeben. 
+  Wenn `my_repo` es die angeforderte Paketversion nicht enthält, CodeArtifact sucht es in `my_repo` den Upstream-Repositorys danach. Wenn die Paketversion gefunden wird, wird ein Verweis darauf `my_repo` kopiert und die Paketversion wird an den Client zurückgegeben. 
+  Wenn `my_repo` weder die Paketversion noch die Upstream-Repositorys die Paketversion enthalten, wird eine HTTP `Not Found` 404-Antwort an den Client zurückgegeben.

 Wenn Sie Upstream-Repositorys mit dem `update-repository` Befehl `create-repository` oder hinzufügen, bestimmt die Reihenfolge, in der sie an den `--upstreams` Parameter übergeben werden, ihre Priorität, wenn eine Paketversion angefordert wird. Geben Sie die Upstream-Repositorys `--upstreams` in der Reihenfolge an, die Sie verwenden CodeArtifact möchten, wenn eine Paketversion angefordert wird. Weitere Informationen finden Sie unter [Reihenfolge der Prioritäten des Upstream-Reposit](repo-upstream-search-order.md). 

 Die maximale Anzahl von direkten Upstream-Repositorys, die für ein Repository zulässig sind, ist 10. Da Direct-Upstream-Repositorys auch eigene Direct-Upstream-Repositorys haben CodeArtifact können, können mehr als 10 Repositorien nach Paketversionen durchsucht werden. Die maximale Anzahl von Repositorys, die CodeArtifact durchsucht werden, wenn eine Paketversion angefordert wird, ist 25. 

## Aufbewahrung von Paketen aus Upstream-Repositorys
<a name="package-retention-upstream-repos"></a>

 Wenn eine angeforderte Paketversion in einem Upstream-Repository gefunden wird, wird ein Verweis darauf beibehalten und ist im Downstream-Repository immer verfügbar. Die beibehaltene Paketversion ist von keinem der folgenden Faktoren betroffen: 
+  Das Upstream-Repository wird gelöscht. 
+  Trennen des Upstream-Repositorys vom Downstream-Repository. 
+  Löschen der Paketversion aus dem Upstream-Repository. 
+  Bearbeiten der Paketversion im Upstream-Repository (z. B. durch Hinzufügen eines neuen Assets). 

## Ruft Pakete über eine Upstream-Beziehung ab
<a name="fetching-packages-through-an-upstream-relationship"></a>

Wenn ein CodeArtifact Repository eine Upstream-Beziehung zu einem Repository hat, das über eine externe Verbindung verfügt, werden Anfragen für Pakete, die sich nicht im Upstream-Repository befinden, aus dem externen Repository kopiert. Stellen Sie sich zum Beispiel die folgende Konfiguration vor: Ein Repository mit dem Namen `repo-A` hat ein Upstream-Repository mit dem Namen`repo-B`. `repo-B`hat eine externe Verbindung zu [https://npmjs.com](https://npmjs.com).

![Einfaches Upstream-Repository-Diagramm, das drei miteinander verkettete Repositorys zeigt.](http://docs.aws.amazon.com/de_de/codeartifact/latest/ug/images/upstream-with-external.png)


Wenn `npm` es für die Verwendung des `repo-A` Repositorys konfiguriert ist, `npm install` löst das Ausführen das Kopieren von Paketen aus dem Verzeichnis aus [https://npmjs.com](https://npmjs.com). `repo-B` Die installierten Versionen werden ebenfalls abgerufen`repo-A`. Das folgende Beispiel wird installiert`lodash`.

```
$ npm config get registry
https://{{my_domain}}-{{111122223333}}.d.codeartifact.{{us-west-2}}.amazonaws.com/npm/my-downstream-repo/
$ npm install lodash
+ lodash@4.17.20
added 1 package from 2 contributors in 6.933s
```

`repo-A`Enthält nach der Ausführung `npm install` nur die neueste Version (`lodash 4.17.20`), da dies die Version ist, die `npm` von `repo-A` abgerufen wurde.

```
aws codeartifact list-package-versions --repository {{repo-A}} --domain {{my_domain}} \
            --domain-owner {{111122223333}} --format {{npm}} --package {{lodash}}
```

Beispielausgabe:

```
{
    "package": "{{lodash}}",
    "format": "{{npm}}",
    "versions": [
        {
            "version": "4.17.15",
            "revision": "REVISION-1-SAMPLE-6C81EFF7DA55CC",
            "status": "Published"
        }
    ]
}
```

 Da es eine externe Verbindung zu `repo-B` hat [https://npmjs.com](https://npmjs.com), werden alle Paketversionen, aus [https://npmjs.com](https://npmjs.com)denen importiert wurde, in `repo-B` gespeichert. Diese Paketversionen könnten von jedem Downstream-Repository mit einer Upstream-Beziehung zu `repo-B` abgerufen worden sein. 

Der Inhalt von `repo-B` bietet eine Möglichkeit, alle Pakete und Paketversionen zu sehen, aus denen [https://npmjs.com](https://npmjs.com)im Laufe der Zeit importiert wurde. Um beispielsweise alle Versionen des `lodash` Pakets zu sehen, die im Laufe der Zeit importiert wurden, können Sie Folgendes verwenden`list-package-versions`.

```
aws codeartifact list-package-versions --repository {{repo-B}} --domain {{my_domain}} \
            --domain-owner {{111122223333}} --format {{npm}} --package {{lodash}} --max-results 5
```

Beispielausgabe:

```
{
    "package": "{{lodash}}",
    "format": "{{npm}}",
    "versions": [
        {
            "version": "0.10.0",
            "revision": "REVISION-1-SAMPLE-6C81EFF7DA55CC",
            "status": "Published"
        },
        {
            "version": "0.2.2",
            "revision": "REVISION-2-SAMPLE-6C81EFF7DA55CC",
            "status": "Published"
        },
        {
            "version": "0.2.0",
            "revision": "REVISION-3-SAMPLE-6C81EFF7DA55CC",
            "status": "Published"
        },
        {
            "version": "0.2.1",
            "revision": "REVISION-4-SAMPLE-6C81EFF7DA55CC",
            "status": "Published"
        },
        {
            "version": "0.1.0",
            "revision": "REVISION-5-SAMPLE-6C81EFF7DA55CC",
            "status": "Published"
        }
    ],
    "nextToken": "eyJsaXN0UGFja2FnZVZlcnNpb25zVG9rZW4iOiIwLjIuMiJ9"
}
```

## Aufbewahrung von Paketen in Zwischenrepositorien
<a name="package-retention-intermediate-repositories"></a>

 CodeArtifact ermöglicht die Verkettung von Upstream-Repositorys. `repo-A`Kann zum Beispiel `repo-B` als Upstream haben und `repo-B` kann `repo-C` als Upstream haben. Diese Konfiguration macht die Paketversionen in `repo-B` und `repo-C` verfügbar von`repo-A`. 

![Einfaches Upstream-Repository-Diagramm, das drei miteinander verkettete Repositorys zeigt.](http://docs.aws.amazon.com/de_de/codeartifact/latest/ug/images/upstream-chaining.png)


 Wenn ein Paketmanager eine Verbindung zum Repository herstellt `repo-A` und eine Paketversion aus dem Repository abruft`repo-C`, wird die Paketversion nicht im Repository gespeichert. `repo-B` Die Paketversion wird nur im Repository gespeichert, das sich am weitesten unten befindet, in diesem Beispiel. `repo-A` Sie wird nicht in zwischengeschalteten Repositorien aufbewahrt. Dies gilt auch für längere Ketten. Wenn es beispielsweise vier Repositorien`repo-A`,`repo-B`, und gäbe `repo-D` und ein Paketmanager verbunden wäre`repo-C`, von dem eine Paketversion `repo-A` abgerufen wurde`repo-D`, würde die Paketversion in oder beibehalten, `repo-A` aber nicht in oder. `repo-B` `repo-C` 

 Das Verhalten bei der Paketaufbewahrung ist ähnlich, wenn eine Paketversion aus einem externen Repository abgerufen wird, mit der Ausnahme, dass die Paketversion immer in dem Repository aufbewahrt wird, an das die externe Verbindung angeschlossen ist. `repo-A`Hat zum Beispiel `repo-B` als Upstream. `repo-B`hat `repo-C` als Upstream und hat `repo-C` auch **npmjs.com** als externe Verbindung konfiguriert; siehe das folgende Diagramm.

![Das Upstream-Repository-Diagramm zeigt drei miteinander verkettete Repositorys mit einer externen Verbindung zu npmjs.com.](http://docs.aws.amazon.com/de_de/codeartifact/latest/ug/images/upstream-chaining-external.png)


 **Wenn ein Paketmanager, der eine Verbindung herstellt, eine Paketversion `repo-A` anfordert, zum Beispiel *Lodash 4.17.20*, und die Paketversion in keinem der drei Repositorys vorhanden ist, wird sie von npmjs.com abgerufen.** **Wenn *Lodash 4.17.20* abgerufen wird, wird es beibehalten, da es sich um das am meisten nachgeschaltete Repository handelt und `repo-A` da die externe Verbindung zu npmjs.com angeschlossen ist. `repo-C`** *lodash 4.17.20* wird nicht gespeichert, da es sich um ein Zwischenrepository handelt. `repo-B` 