État de version du package de mise à jour - CodeArtifact

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.

État de version du package de mise à jour

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 à 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.

Mettre à jour le statut de version du package

La définition du statut 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. UpdatePackageVersionsStatus APIPermet de définir l'état de version du package de plusieurs versions d'un même package en un seul API appel. Pour une description des différents statuts, voirVue d'ensemble des packages.

Utilisez la update-package-versions-status commande pour modifier le statut d'une version de package en PublishedUnlisted, ouArchived. Pour connaître les IAM autorisations requises pour utiliser la commande, consultezIAMAutorisations requises pour mettre à jour le statut de la version d'un package. L'exemple suivant définit le statut de la version 4.1.0 du package chalk npm sur. Archived

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 --target-status Archived

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 --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 4.1.1 --target-status Archived

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, une version de package ne peut pas être replacée dans cet 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.

IAMAutorisations requises pour mettre à jour le statut de la version d'un package

update-package-versions-statusPour demander un package, vous devez avoir l'codeartifact:UpdatePackageVersionsStatusautorisation d'accéder à la ressource du package. Cela signifie que vous pouvez accorder l'autorisation update-package-versions-status d'appeler pour chaque forfait. Par exemple, une IAM politique qui accorde l'autorisation d'appeler update-package-versions-status le package npm chalk inclurait une déclaration 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 dé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 liste de la version 8.0.0 de@nestjs/core, utilisez la commande suivante.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --namespace nestjs --package core --versions 8.0.0 --target-status Unlisted

Mettre à jour le statut 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 --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven --namespace org.apache.logging.log4j --package log4j --versions 2.13.1 --target-status Archived

Spécification d'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 le statut 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 version de package. L'état d'une version de package ne sera mis à jour que si la révision actuelle de la version de 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 --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8bzVMJ4=" --versions 4.1.0 --target-status Archived

Pour mettre à jour plusieurs versions à l'aide d'une seule commande, transmettez aux options une liste séparée par des virgules de paires de versions et de révisions de --version-revisions version. 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 --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" --versions 4.1.0 4.0.0 --target-status Published

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 package, les versions transmises --version-revisions doivent être les mêmes que celles transmises--versions. Si une révision n'est pas spécifiée correctement, le statut de cette version 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 le statut actuel ne correspond pas à la valeur transmise--expected-status, le statut de cette version du package ne sera pas mis à jour.

Par exemple, dans my_repo, les versions 4.0.0 et 4.1.0 du package npm ont chalk actuellement un statut de. Published Un appel indiquant un statut attendu de Unlisted échouera à mettre à jour les deux versions du package en raison de l'incompatibilité des statuts. update-package-versions-status

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 4.0.0 --target-status Archived --expected-status Unlisted

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 différentes versions de package

Il existe plusieurs raisons pour lesquelles le statut d'une version de package ne sera pas mis à jour lors de l'appelupdate-package-versions-status. Par exemple, la révision de la version du package a peut-être été spécifiée de manière incorrecte ou le statut attendu ne correspond pas à l'état actuel. Dans ces cas, la version sera incluse dans la failedVersions carte de la API réponse. 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 n'est pas mis à jour. Ces versions seront également incluses dans la failedVersions carte avec un errorCode deSKIPPED.

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. En d'autres termes, soit toutes les versions sont mises à jour avec succès, soit aucune version n'est mise à jour. Ce comportement n'est pas garanti dans le API contrat ; à l'avenir, certaines versions pourraient réussir tandis que d'autres échoueront en un seul appel àupdate-package-versions-status.

L'exemple de commande suivant inclut un échec de mise à jour de l'état de version causé par une incompatibilité de version de version de 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 --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" --versions 4.1.0 4.0.0 --target-status Archived

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 du package

Le statut Disposed du package a un comportement similaire à celui du packageArchived, sauf que les actifs du package seront définitivement supprimés, de CodeArtifact sorte que le compte du propriétaire du domaine ne sera plus facturé pour le stockage des actifs. Pour plus d'informations sur le statut de chaque version de package, consultezÉtat de la version du package. Pour modifier le statut d'une version de package enDisposed, utilisez la dispose-package-versions commande. Cette fonctionnalité est distincte du update-package-versions-status fait que la suppression d'une version de package n'est pas réversible. Dans la mesure où les actifs du package seront supprimés, le statut de la version ne peut pas être redéfini sur ArchivedUnlisted, ouPublished. La seule action qui peut être entreprise sur une version de package qui a été supprimée est de la supprimer à l'aide de la delete-package-versions commande.

Pour que l'appel soit dispose-package-versions réussi, le IAM principal appelant doit avoir l'codeartifact:DisposePackageVersionsautorisation d'accéder à la ressource du package.

Le comportement de la dispose-package-versions commande est similaire à update-package-versions-status celui des --expected-status options --version-revisions et décrites dans les sections sur la révision de la version et sur le statut attendu. Par exemple, la commande suivante tente de supprimer une version de package mais échoue en raison d'un état attendu qui ne correspond pas.

aws codeartifact dispose-package-versions —domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.0.0 --expected-status Unlisted

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 dePublished, la destruction réussira.

aws codeartifact dispose-package-versions —domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.0.0 --expected-status Published

Exemple de sortie :

{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Disposed" } }, "failedVersions": {} }