Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Comportement des API avec les référentiels en amont
Lorsque vous appelez certaines CodeArtifact API sur des référentiels connectés à des référentiels en amont, le comportement peut être différent selon que les packages ou les versions de packages sont stockés dans le référentiel cible ou dans le référentiel amont. Le comportement de ces API est documenté ici.
Pour plus d'informations sur CodeArtifact les API, consultez la référence des CodeArtifact API.
La plupart des API qui font référence à un package ou à une version de package renvoient une ResourceNotFound
erreur si la version de package spécifiée n'est pas présente dans le référentiel cible. Cela est vrai même si le package ou la version du package est présent dans un référentiel en amont. En fait, les référentiels en amont sont ignorés lors de l'appel de ces API. Ces API sont les suivantes :
DeletePackageVersions
DescribePackageVersion
GetPackageVersionAsset
GetPackageVersionReadme
ListPackages
ListPackageVersionAssets
ListPackageVersionDependencies
ListPackageVersions
UpdatePackageVersionsStatus
Pour illustrer ce comportement, nous avons deux référentiels : target-repo
etupstream-repo
. target-repo
est vide et a été upstream-repo
configuré en tant que référentiel en amont. upstream-repo
contient le package lodash
npm.
Lorsque l'DescribePackageVersion
API est appeléeupstream-repo
, qui contient le lodash
package, nous obtenons le résultat suivant :
{ "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" }
Lorsque vous appelez la même APItarget-repo
, qui est vide mais upstream-repo
configurée en amont, nous obtenons le résultat suivant :
An error occurred (ResourceNotFoundException) when calling the DescribePackageVersion operation: Package not found in repository. RepoId:
repo-id
, Package = PackageCoordinate{packageType=npm, packageName=lodash},
L'CopyPackageVersions
API se comporte différemment. Par défaut, CopyPackageVersions
l'API copie uniquement les versions de package stockées dans le référentiel cible. Si une version de package est stockée dans le référentiel en amont mais pas dans le référentiel cible, elle ne sera pas copiée. Pour inclure les versions de packages qui sont stockées uniquement dans le référentiel en amont, définissez la valeur de includeFromUpstream
to true
dans votre demande d'API.
Pour plus d'informations sur l'CopyPackageVersions
API, consultezCopier des packages entre des référentiels.