Supervisión de eventos de CodeArtifact - CodeArtifact

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.

Supervisión de eventos de CodeArtifact

CodeArtifact está integrado con Amazon EventBridge, un servicio que automatiza y responde a los eventos, incluidos los cambios en un repositorio de CodeArtifact. Puede crear reglas para eventos y configurar qué sucede cuando un evento cumpla una de las reglas. Antes, EventBridge se llamaba CloudWatch Events.

Un evento puede desencadenar las siguientes acciones:

  • Invocar una función de AWS Lambda,

  • Activar una máquina de estado de AWS Step Functions,

  • Notificar un tema de Amazon SNS o una cola de Amazon SQS.

  • Iniciar una canalización en AWS CodePipeline.

CodeArtifact crea un evento cuando se crea, modifica o elimina una versión del paquete. Los siguientes son ejemplos de eventos CodeArtifact:

Los eventos se envían tanto a la cuenta propietaria del dominio como a la cuenta que administra el repositorio. Por ejemplo, supongamos que esa cuenta 111111111111 es la propietaria del dominio my_domain. La cuenta 222222222222 crea un repositorio en my_domain llamado repo2. Cuando se publica una nueva versión del paquete en repo2, ambas cuentas reciben los eventos de EventBridge. La cuenta propietaria del dominio (111111111111) recibe los eventos de todos los repositorios del dominio. Si una sola cuenta es propietaria tanto del dominio como del repositorio que contiene, solo se entrega un evento.

En los temas siguientes se describe el formato de eventos CodeArtifact. Le muestran cómo configurar los eventos de CodeArtifact y cómo utilizar los eventos con otros servicios AWS. Para obtener más información, consulte Introducción a Amazon EventBridge en la Guía del usuario de Amazon EventBridge.

Formato y ejemplo de evento CodeArtifact

Los siguientes son campos y descripciones de eventos junto con un ejemplo de un evento CodeArtifact.

Formato de eventos CodeArtifact

Todos los eventos de CodeArtifact incluyen los siguientes campos.

Campo del evento Descripción
versión La versión del formato del evento de . Actualmente sólo existe una única versión, 0.
id Un identificador único para el evento.
tipo-detalle El tipo de evento. Esto determina los campos del objeto detail. El detail-type que se admite actualmente es CodeArtifact Package Version State Change.
origen Origen del evento. Para CodeArtifact, será aws.codeartifact.
inscrita El ID de la cuenta de AWS que recibe el evento.
hora La hora exacta en la que se activó el evento.
region La región en la que se desencadenó el evento.
recursos Una lista que contiene el ARN del paquete que se modificó. La lista contiene una entrada. Para obtener información sobre el formato ARN del paquete, consulte Otorgar acceso de escritura a los paquetes.
domainName El dominio que contiene el repositorio que contiene el paquete.
domainOwner El ID de la cuenta de AWS del propietario del dominio.
repositoryName El repositorio que contiene el paquete.
repositoryAdministrator El ID de cuenta de AWS del administrador del repositorio.
packageFormat El formato del paquete que desencadenó el evento.
packageNamespace El espacio de nombres del paquete que desencadenó el evento.
packageName El nombre del paquete que desencadenó el evento.
packageVersion La versión del paquete que desencadenó el evento.
packageVersionState El estado de la versión del paquete cuando se desencadenó el evento. Los valores posibles son Unfinished, Published, UnlistedArchived y Disposed.
packageVersionRevision Un valor que identifica de forma exclusiva el estado de los activos y los metadatos de la versión del paquete cuando se activó el evento. Si se modifica la versión del paquete (por ejemplo, añadiendo otro archivo JAR a un paquete de Maven), packageVersionRevision cambia.
changes.assetsAdded La cantidad de activos agregados a un paquete que desencadenaron un evento. Algunos ejemplos de activos son un archivo JAR de Maven o una rueda de Python.
changes.assetsRemoved El número de activos retirados de un paquete que desencadenaron un evento.
changes.assetsUpdated El número de activos modificados en el paquete que desencadenó el evento.
changes.metadataUpdated Un valor booleano que se establece en true si el evento incluye metadatos modificados a nivel de paquete. Por ejemplo, un evento puede modificar un archivo pom.xml Maven.
changes.statusChanged Un valor booleano que se establece en true si se modifica el evento packageVersionStatus (por ejemplo, si packageVersionStatus cambia de Unfinished a Published).
operationType Describe el tipo de cambio de versión del paquete de alto nivel. Los valores posibles son Created, Updated y Deleted.
sequenceNumber Un entero que especifica el número de evento de un paquete. Cada evento de un paquete incrementa el sequenceNumber para que los eventos se puedan organizar secuencialmente. Un evento puede incrementar sequenceNumber en cualquier número entero.
nota

Es posible que los eventos de EventBridge se reciban fuera de orden. Se puede utilizar sequenceNumber para determinar su orden real.

eventDeduplicationId Un identificador que se utiliza para diferenciar los eventos de EventBridge duplicados. En raras ocasiones, EventBridge puede activar la misma regla más de una vez para un solo evento o una hora programada. O bien, puede invocar el mismo objetivo más de una vez para una regla activada determinada.

Ejemplo de evento CodeArtifact

El siguiente es el ejemplo de un evento CodeArtifact que puede desencadenarse cuando se publique un paquete npm.

{ "version":"0", "id":"73f03fec-a137-971e-6ac6-07c8ffffffff", "detail-type":"CodeArtifact Package Version State Change", "source":"aws.codeartifact", "account":"123456789012", "time":"2019-11-21T23:19:54Z", "region":"us-west-2", "resources":["arn:aws:codeartifact:us-west-2:111122223333:package/my_domain/myrepo/npm//mypackage"], "detail":{ "domainName":"my_domain", "domainOwner":"111122223333", "repositoryName":"myrepo", "repositoryAdministrator":"123456789012", "packageFormat":"npm", "packageNamespace":null, "packageName":"mypackage", "packageVersion":"1.0.0", "packageVersionState":"Published", "packageVersionRevision":"0E5DE26A4CD79FDF3EBC4924FFFFFFFF", "changes":{ "assetsAdded":1, "assetsRemoved":0, "metadataUpdated":true, "assetsUpdated":0, "statusChanged":true }, "operationType":"Created", "sequenceNumber":1, "eventDeduplicationId":"2mEO0A2Ke07rWUTBXk3CAiQhdTXF4N94LNaT/ffffff=" } }