API-Verhalten bei Upstream-Repositorys - CodeArtifact

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.

API-Verhalten bei Upstream-Repositorys

Wenn Sie bestimmte CodeArtifact APIs in Repositorys aufrufen, die mit Upstream-Repositorys verbunden sind, kann das Verhalten unterschiedlich sein, je nachdem, ob die Pakete oder Paketversionen im Ziel-Repository oder im Upstream-Repository gespeichert sind. Das Verhalten dieser APIs ist hier dokumentiert.

Weitere Informationen zu CodeArtifact APIs finden Sie in der CodeArtifact API-Referenz.

Die meisten APIs, die auf ein Paket oder eine Paketversion verweisen, geben einen ResourceNotFound Fehler zurück, wenn die angegebene Paketversion nicht im Ziel-Repository vorhanden ist. Dies gilt auch dann, wenn das Paket oder die Paketversion in einem Upstream-Repository vorhanden ist. Tatsächlich werden Upstream-Repositorys beim Aufrufen dieser APIs ignoriert. Diese APIs sind:

  • DeletePackageVersions

  • DescribePackageVersion

  • GetPackageVersionAsset

  • GetPackageVersionReadme

  • ListPackages

  • ListPackageVersionAssets

  • ListPackageVersionDependencies

  • ListPackageVersions

  • UpdatePackageVersionsStatus

Um dieses Verhalten zu demonstrieren, haben wir zwei Repositorien: target-repo undupstream-repo. target-repoist leer und wurde als Upstream-Repository upstream-repo konfiguriert. upstream-repoenthält das npm-Paketlodash.

Wenn wir die DescribePackageVersion API aufrufenupstream-repo, die das lodash Paket enthält, erhalten wir die folgende Ausgabe:

{ "packageVersion": { "format": "npm", "packageName": "lodash", "displayName": "lodash", "version": "4.17.20", "summary": "Lodash modular utilities.", "homePage": "https://lodash.com/", "sourceCodeRepository": "https://github.com/lodash/lodash.git", "publishedTime": "2020-10-14T11:06:10.370000-04:00", "licenses": [ { "name": "MIT" } ], "revision": "Ciqe5/9yicvkJT13b5/LdLpCyE6fqA7poa9qp+FilPs=", "status": "Published" }

Wenn wir dieselbe API aufrufentarget-repo, die leer ist, aber als Upstream upstream-repo konfiguriert wurde, erhalten wir die folgende Ausgabe:

An error occurred (ResourceNotFoundException) when calling the DescribePackageVersion operation: Package not found in repository. RepoId: repo-id, Package = PackageCoordinate{packageType=npm, packageName=lodash},

Die CopyPackageVersions API verhält sich anders. Standardmäßig kopiert die CopyPackageVersions API nur Paketversionen, die im Ziel-Repository gespeichert sind. Wenn eine Paketversion im Upstream-Repository, aber nicht im Ziel-Repository gespeichert ist, wird sie nicht kopiert. Um Paketversionen von Paketen einzubeziehen, die nur im Upstream-Repository gespeichert sind, setzen Sie true in Ihrer API-Anfrage den Wert auf. includeFromUpstream

Weitere Informationen zur CopyPackageVersions API finden Sie unterPakete zwischen Repositorys kopieren.