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:
-
Publicar una nueva versión del paquete (por ejemplo, ejecutando
npm publish). -
Añadir un nuevo activo a una versión de paquete existente (por ejemplo, insertando un nuevo archivo JAR en un paquete Maven existente).
-
Copiar una versión de paquete de un repositorio en otro mediante
copy-package-versions. Para obtener más información, consulte Copiar paquetes entre repositorios. -
Eliminar versiones de paquetes mediante
delete-package-versions. Para obtener más información, consulte Eliminar un paquete o una versión de un paquete. -
Eliminar versiones de paquetes mediante
delete-package. Se publicará un evento para cada versión del paquete eliminado. Para obtener más información, consulte Eliminar un paquete o una versión de un paquete. -
Conservar la versión de un paquete en un repositorio descendente cuando se ha obtenido de un repositorio ascendente. Para obtener más información, consulte Trabajar con repositorios ascendentes en CodeArtifact.
-
Ingerir una versión de paquete de un repositorio externo a un repositorio de CodeArtifact. Para obtener más información, consulte Conectar un repositorio de CodeArtifact a un repositorio público.
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, Unlisted, Archived 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 |
| 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=" } }