Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Actualización del estado de la versión del paquete
Cada versión del paquete CodeArtifact tiene un estado que describe el estado actual y la disponibilidad de la versión del paquete. Puede cambiar el estado de la versión del paquete mediante la consola AWS CLI y la consola.
nota
Para obtener más información sobre el estado de la versión del paquete, incluida una lista de los estados disponibles, consulte El estado de la versión del paquete.
Actualizar el estado de la versión del paquete
Establecer el estado de la versión de un paquete permite controlar cómo se puede usar una versión del paquete sin eliminarla por completo del repositorio. Por ejemplo, cuando la versión de un paquete tiene el estado de Unlisted
, se puede seguir descargando de forma normal, pero no aparecerá en las listas de versiones de paquetes devueltas a comandos como npm view
. UpdatePackageVersionsStatus APIPermite configurar el estado de la versión del paquete de varias versiones del mismo paquete en una sola API llamada. Para obtener una descripción de los diferentes estados, consulte Información general sobre paquetes.
Utilice el comando update-package-versions-status
para cambiar el estado de una versión de paquete a Published
, Unlisted
, o Archived
. Para ver los IAM permisos necesarios para usar el comando, consulteIAMPermisos necesarios para actualizar el estado de la versión de un paquete. El siguiente ejemplo establece el estado de la versión 4.1.0 del paquete npm chalk
en Archived
.
aws codeartifact update-package-versions-status --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.1.0
--target-statusArchived
Resultado de ejemplo:
{ "successfulVersions": { "4.1.0": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }
En este ejemplo se utiliza un paquete npm, pero el comando funciona de forma idéntica en otros formatos. Se pueden mover varias versiones al mismo estado de destino con un solo comando; consulte el siguiente ejemplo.
aws codeartifact update-package-versions-status --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.1.0 4.1.1
--target-statusArchived
Resultado de ejemplo:
{ "successfulVersions": { "4.1.0": { "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=", "status": "Archived" }, "4.1.1": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }
Tenga en cuenta que, una vez publicada, la versión de un paquete no se puede volver a mover al estado Unfinished
, por lo que este estado no está permitido como valor para el parámetro --target-status
. Para mover la versión del paquete al estado Disposed
, utilice el comando dispose-package-versions
en su lugar, tal como se describe a continuación.
IAMPermisos necesarios para actualizar el estado de la versión de un paquete
Para llamar a update-package-versions-status
para un paquete, debe tener el permiso codeartifact:UpdatePackageVersionsStatus
en el recurso del paquete. Esto significa que puede otorgar permiso para llamar a update-package-versions-status
por paquete. Por ejemplo, una IAM política que otorga permiso para invocar update-package-versions-status
el paquete npm chalk
incluiría una declaración como la siguiente.
{ "Action": [ "codeartifact:UpdatePackageVersionsStatus" ], "Effect": "Allow", "Resource": "arn:aws:codeartifact:
us-east-1
:111122223333
:package/my_domain
/my_repo
/npm//chalk" }
Se está actualizando el estado de un paquete npm específico
Para actualizar el estado de la versión del paquete de una versión del paquete npm con un alcance, utilice el parámetro --namespace
. Por ejemplo, para eliminar la versión 8.0.0 de @nestjs/core
, utilice el siguiente comando.
aws codeartifact update-package-versions-status --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--namespacenestjs
--packagecore
--versions8.0.0
--target-statusUnlisted
Estado de actualización de un paquete de Maven
Los paquetes de Maven siempre tienen un identificador de grupo, que se denomina espacio de nombres en. CodeArtifact Utilice el parámetro --namespace
para especificar el ID de grupo de Maven al llamar a update-package-versions-status
. Por ejemplo, para archivar la versión 2.13.1 del paquete Maven org.apache.logging.log4j:log4j
, utilice el siguiente comando.
aws codeartifact update-package-versions-status --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatmaven
--namespaceorg.apache.logging.log4j
--packagelog4j
--versions2.13.1
--target-statusArchived
Especificación de una versión de paquete
La revisión de la versión de un paquete es una cadena que especifica un conjunto específico de activos y metadatos para una versión de paquete. Puede especificar una revisión de la versión del paquete para actualizar el estado de las versiones del paquete que se encuentran en un estado específico. Para especificar una revisión de la versión del paquete, utilice el parámetro --version-revisions
para pasar una o más versiones del paquete separadas por comas y los pares de revisiones de versiones del paquete. El estado de la versión de un paquete solo se actualizará si la revisión actual de la versión del paquete coincide con el valor especificado.
nota
El parámetro —-versions
también debe definirse cuando se utilice el parámetro --version-revisions
.
aws codeartifact update-package-versions-status --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8bzVMJ4=
" --versions4.1.0
--target-statusArchived
Para actualizar varias versiones con un solo comando, pase a las opciones una lista separada por comas de pares de versiones y revisiones a las opciones --version-revisions
. El siguiente comando de ejemplo define dos pares diferentes de versiones de paquetes y revisiones de versiones de paquetes.
aws codeartifact update-package-versions-status --domain
my_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
Resultado de ejemplo:
{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Published" }, "4.1.0": { "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=", "status": "Published" } }, "failedVersions": {} }
Al actualizar varias versiones de paquetes, las versiones que se han pasado a --version-revisions
deben ser las mismas que las versiones pasadas a --versions
. Si se especifica una revisión de forma incorrecta, el estado de esa versión no se actualizará.
Uso del parámetro de estado esperado
El comando update-package-versions-status
proporciona el parámetro --expected-status
que permite especificar el estado actual esperado de una versión del paquete. Si el estado actual no coincide con el valor al que se ha pasado a --expected-status
, el estado de esa versión del paquete no se actualizará.
Por ejemplo, en my_repo
, las versiones 4.0.0 y 4.1.0 del paquete npm tienen chalk
actualmente un estado de. Published
Una llamada a update-package-versions-status
que especifique el estado esperado de no Unlisted
podrá actualizar ambas versiones del paquete debido a la discordancia de estados.
aws codeartifact update-package-versions-status --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.1.0 4.0.0
--target-statusArchived
--expected-statusUnlisted
Resultado de ejemplo:
{ "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" } } }
Errores con las versiones individuales de los paquetes
Existen varios motivos por los que el estado de la versión de un paquete no se actualiza cuando se llama a update-package-versions-status
. Por ejemplo, es posible que la revisión de la versión del paquete se haya especificado incorrectamente o que el estado esperado no coincida con el estado actual. En estos casos, la versión se incluirá en el failedVersions
mapa de la respuesta. API Si una versión falla, es posible que se omitan las demás versiones especificadas en la misma llamada a update-package-versions-status
y que su estado no se actualice. Estas versiones también se incluirán en el mapa failedVersions
con un errorCode
de SKIPPED
.
En la implementación actual de update-package-versions-status
, si no se puede cambiar el estado de una o más versiones, se omitirán todas las demás versiones. Es decir, todas las versiones se actualizan correctamente o no se actualiza ninguna versión. Este comportamiento no está garantizado en el API contrato; en el futuro, algunas versiones podrían tener éxito mientras que otras podrían fallar en una sola llamadaupdate-package-versions-status
.
El siguiente comando de ejemplo incluye un error en la actualización del estado de la versión provocado por una discordancia entre las versiones de un paquete. Ese error de actualización provoca que se omita otra llamada de actualización del estado de la versión.
aws codeartifact update-package-versions-status --domain
my_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
Resultado de ejemplo:
{ "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=" } } }
Eliminación de las versiones de los paquetes
El estado Disposed
del paquete tiene un comportamiento similar al del paqueteArchived
, con la salvedad de que los activos del paquete se eliminarán permanentemente para CodeArtifact que el almacenamiento de activos deje de facturarse a la cuenta del propietario del dominio. Para obtener más información sobre el estado de cada versión del paquete, consulte El estado de la versión del paquete. Para cambiar el estado de una versión de paquete a Disposed
, use el comando dispose-package-versions
. Esta capacidad es independiente de la de update-package-versions-status
debido a que la eliminación de una versión de paquete no es reversible. Como los activos del paquete se eliminarán, el estado de la versión no se puede volver a cambiar a Archived
, Unlisted
o Published
. La única acción que se puede realizar en una versión de paquete que se ha eliminado es eliminarla mediante el comando delete-package-versions
.
Para que la llamada se realice dispose-package-versions
correctamente, la persona IAM que realiza la llamada debe tener el codeartifact:DisposePackageVersions
permiso correspondiente al recurso del paquete.
El comportamiento del comando dispose-package-versions
es similar a update-package-versions-status
, incluido el comportamiento de las opciones --version-revisions
y --expected-status
que se describen en las secciones de revisión de versión y estado esperado. Por ejemplo, el siguiente comando intenta eliminar la versión de un paquete, pero falla debido a un estado esperado que no coincide.
aws codeartifact dispose-package-versions —domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.0.0
--expected-statusUnlisted
Resultado de ejemplo:
{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" } } }
Si se vuelve a ejecutar el mismo comando con un --expected-status
de Published
, la eliminación se realizará correctamente.
aws codeartifact dispose-package-versions —domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--formatnpm
--packagechalk
--versions4.0.0
--expected-statusPublished
Resultado de ejemplo:
{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Disposed" } }, "failedVersions": {} }