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.
Mettre à jour l'état de version du package
Chaque version de package CodeArtifact possède un statut qui décrit l'état actuel et la disponibilité de la version du package. Vous pouvez modifier l'état de la version du package à la fois à l'aide de la console AWS CLI et de la console.
Note
Pour plus d'informations sur l'état de la version du package, y compris une liste des statuts disponibles, consultezÉtat de la version du package.
Mise à jour de l'état de la version
La définition de l'état d'une version de package permet de contrôler la manière dont une version de package peut être utilisée sans la supprimer complètement du référentiel. Par exemple, lorsqu'une version de package a le statut deUnlisted, elle peut toujours être téléchargée normalement, mais elle n'apparaîtra pas dans les listes de versions de package renvoyées à des commandes telles quenpm view. L'UpdatePackageVersionsStatus API permet de définir l'état de version du package de plusieurs versions du même package en un seul appel d'API. Pour une description des différents statuts, voirVue d'ensemble des packages.
Utilisez la update-package-versions-status commande pour modifier le statut de la version d'un package en PublishedUnlisted, ouArchived. Pour connaître les autorisations IAM requises pour utiliser la commande, consultezAutorisations IAM requises pour mettre à jour l'état de la version d'un package. L'exemple suivant définit l'état de la version 4.1.0 du package chalk npm sur. Archived
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--versions4.1.0--target-statusArchived
Exemple de sortie :
{ "successfulVersions": { "4.1.0": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }
Cet exemple utilise un package npm, mais la commande fonctionne de la même manière pour les autres formats. Plusieurs versions peuvent être déplacées vers le même statut cible à l'aide d'une seule commande, voir l'exemple suivant.
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--versions4.1.0 4.1.1--target-statusArchived
Exemple de sortie :
{ "successfulVersions": { "4.1.0": { "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=", "status": "Archived" }, "4.1.1": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }
Notez qu'une fois publiée, la version d'un package ne peut pas être ramenée à l'Unfinishedétat, ce statut n'est donc pas autorisé en tant que valeur pour le --target-status paramètre. Pour déplacer la version du package vers l'Disposedétat, utilisez plutôt la dispose-package-versions commande comme décrit ci-dessous.
Autorisations IAM requises pour mettre à jour l'état de la version d'un package
update-package-versions-statusPour appeler un package, vous devez disposer de l'codeartifact:UpdatePackageVersionsStatusautorisation sur la ressource du package. Cela signifie que vous pouvez accorder l'autorisation update-package-versions-status d'appeler pour chaque forfait. Par exemple, une politique IAM qui accorde l'autorisation d'appeler update-package-versions-status le package npm chalk inclurait une instruction comme celle-ci.
{ "Action": [ "codeartifact:UpdatePackageVersionsStatus" ], "Effect": "Allow", "Resource": "arn:aws:codeartifact:us-east-1:111122223333:package/my_domain/my_repo/npm//chalk" }
Mise à jour de l'état d'un package npm limité
Pour mettre à jour l'état de la version du package d'une version de package npm avec une portée, utilisez le --namespace paramètre. Par exemple, pour annuler la mise en vente de la version 8.0.0 de@nestjs/core, utilisez la commande suivante.
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--namespacenestjs--packagecore--versions8.0.0--target-statusUnlisted
Mise à jour de l'état d'un package Maven
Les packages Maven ont toujours un identifiant de groupe, appelé espace de noms dans. CodeArtifact Utilisez le --namespace paramètre pour spécifier l'ID du groupe Maven lors de l'appelupdate-package-versions-status. Par exemple, pour archiver la version 2.13.1 du package Mavenorg.apache.logging.log4j:log4j, utilisez la commande suivante.
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatmaven--namespaceorg.apache.logging.log4j--packagelog4j--versions2.13.1--target-statusArchived
Spécifier une révision de version de package
Une révision de version de package est une chaîne qui spécifie un ensemble spécifique de ressources et de métadonnées pour une version de package. Vous pouvez spécifier une révision de version de package pour mettre à jour l'état des versions de package qui se trouvent dans un état spécifique. Pour spécifier une révision de version de package, utilisez le --version-revisions paramètre pour transmettre une ou plusieurs versions de package séparées par des virgules et les paires de révisions de versions de package. Le statut d'une version de package ne sera mis à jour que si la révision actuelle de la version du package correspond à la valeur spécifiée.
Note
Le --versions paramètre doit également être défini lors de son --version-revisions utilisation.
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8bzVMJ4=" --versions4.1.0--target-statusArchived
Pour mettre à jour plusieurs versions à l'aide d'une seule commande, transmettez une liste de paires de versions et de révisions de versions séparées par des virgules --version-revisions aux options. L'exemple de commande suivant définit deux paires différentes de version de package et de révision de version de package.
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" --versions4.1.0 4.0.0--target-statusPublished
Exemple de sortie :
{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Published" }, "4.1.0": { "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=", "status": "Published" } }, "failedVersions": {} }
Lors de la mise à jour de plusieurs versions de packages, les versions transmises --version-revisions doivent être identiques à celles transmises--versions. Si une révision n'est pas spécifiée correctement, son statut ne sera pas mis à jour.
Utilisation du paramètre d'état attendu
La update-package-versions-status commande fournit le --expected-status paramètre qui permet de spécifier l'état actuel attendu d'une version de package. Si l'état actuel ne correspond pas à la valeur transmise à--expected-status, le statut de cette version du package ne sera pas mis à jour.
Par exemple, dansmy_repo, les versions 4.0.0 et 4.1.0 du package npm ont chalk actuellement un statut de. Published Un appel à update-package-versions-status that spécifie l'état attendu de Unlisted échouera à mettre à jour les deux versions du package en raison de l'incompatibilité de statut.
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--versions4.1.0 4.0.0--target-statusArchived--expected-statusUnlisted
Exemple de sortie :
{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" }, "4.1.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" } } }
Erreurs liées aux versions individuelles des packages
Il existe plusieurs raisons pour lesquelles le statut d'une version du package ne sera pas mis à jour lors d'un appelupdate-package-versions-status. Par exemple, la révision de la version du package n'a peut-être pas été spécifiée correctement ou l'état attendu ne correspond pas à l'état actuel. Dans ces cas, la version sera incluse dans la failedVersions carte dans la réponse de l'API. Si une version échoue, les autres versions spécifiées dans le même appel à update-package-versions-status peuvent être ignorées et leur statut ne pas être mis à jour. Ces versions seront également incluses sur la failedVersions carte avec errorCode unSKIPPED.
Dans l'implémentation actuelle deupdate-package-versions-status, si le statut d'une ou de plusieurs versions ne peut pas être modifié, toutes les autres versions seront ignorées. Autrement dit, soit toutes les versions sont mises à jour correctement, soit aucune version n'est mise à jour. Ce comportement n'est pas garanti dans le contrat d'API ; à l'avenir, certaines versions pourraient réussir tandis que d'autres versions échoueront en un seul appel àupdate-package-versions-status.
L'exemple de commande suivant inclut un échec de mise à jour de l'état de la version causé par une non-concordance de révision de la version du package. Cet échec de mise à jour entraîne l'annulation d'un autre appel de mise à jour de l'état de la version.
aws codeartifact update-package-versions-status --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" --versions4.1.0 4.0.0--target-statusArchived
Exemple de sortie :
{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "SKIPPED", "errorMessage": "version 4.0.0 is skipped" }, "4.1.0": { "errorCode": "MISMATCHED_REVISION", "errorMessage": "current revision: 25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=, expected revision: 25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ=" } } }
Élimination des versions des packages
L'état Disposed du package a un comportement similaire à celui du packageArchived, sauf qu'il supprime CodeArtifact définitivement les actifs du package, de sorte que le compte du propriétaire du domaine n'est plus facturé pour le stockage des actifs. Pour plus d'informations sur l'état de la version de chaque package, consultezÉtat de la version du package. Pour modifier le statut de la version d'un package enDisposed, utilisez la dispose-package-versions commande. Cette fonctionnalité est distincte du update-package-versions-status fait que la suppression d'une version du package n'est pas réversible. Étant donné que les actifs du package seront supprimés, le statut de la version ne peut pas être Archived redéfini àUnlisted, ouPublished. La seule action qui peut être effectuée sur une version de package supprimée est de la supprimer à l'aide de la delete-package-versions commande.
Pour dispose-package-versions réussir l'appel, le principal IAM appelant doit disposer de l'codeartifact:DisposePackageVersionsautorisation sur la ressource du package.
Le comportement de la dispose-package-versions commande est similaire à celui des --expected-status options --version-revisions etupdate-package-versions-status, notamment, décrites dans les sections Révision de la version et État attendu. Par exemple, la commande suivante tente de supprimer la version d'un package mais échoue en raison d'un statut attendu non concordant.
aws codeartifact dispose-package-versions --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--versions4.0.0--expected-statusUnlisted
Exemple de sortie :
{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" } } }
Si la même commande est exécutée à nouveau avec un --expected-status ofPublished, l'élimination réussira.
aws codeartifact dispose-package-versions --domainmy_domain--domain-owner111122223333--repositorymy_repo--formatnpm--packagechalk--versions4.0.0--expected-statusPublished
Exemple de sortie :
{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Disposed" } }, "failedVersions": {} }