Monitorización de eventos de CodePipeline - AWS CodePipeline

Monitorización de eventos de CodePipeline

Puede monitorizar los eventos de CodePipeline en EventBridge, lo que envía un flujo de datos en tiempo real desde sus propias aplicaciones, aplicaciones de software como servicio (SaaS) y Servicios de AWS. EventBridge dirige esos datos a los objetivos, como AWS Lambda y Amazon Simple Notification Service. Estos eventos son los mismos que los que aparecen en Eventos de Amazon CloudWatch, lo que proporciona un flujo de eventos del sistema casi en tiempo real que describen los cambios en los recursos de AWS. Para obtener más información, consulta ¿Qué es Amazon EventBridge? en la Guía del usuario de Amazon EventBridge.

nota

Amazon EventBridge es la forma preferida de administrar sus eventos. Eventos de Amazon CloudWatch y EventBridge son el mismo servicio subyacente y la misma API, pero EventBridge ofrece más características. Los cambios que realice en CloudWatch Events o EventBridge aparecerán en cada consola.

Los eventos se componen de reglas. Una regla se configura seleccionando lo siguiente:

  • Patrón de eventos. Cada regla se expresa como un patrón de eventos con el origen y el tipo de eventos que se van a supervisar y los objetivos del evento. Para monitorizar los eventos, debe crear una regla con el servicio que está monitorizando como fuente de eventos, como CodePipeline. Por ejemplo, puede crear una regla con un patrón de eventos que utilice CodePipeline como fuente de eventos para activar la regla cuando se produzcan cambios en el estado de una canalización, etapa o acción.

  • Destinos. La nueva regla recibe un servicio seleccionado como destino de eventos. En función del tipo de cambio de estado, es posible que desee enviar notificaciones, capturar información de estado, tomar medidas correctivas, iniciar eventos o adoptar otras medidas. Cuando añada su destino, también debe conceder permisos a EventBridge para que pueda invocar el servicio de destino seleccionado.

Cada tipo de evento de cambio de estado de ejecución emite notificaciones con un contenido de mensaje específico, donde:

  • La entrada version inicial muestra el número de versión del evento.

  • La entrada version de la sección detail de la canalización muestra el número de versión de la estructura de la canalización.

  • La entrada execution-id de la sección detail de la canalización muestra el ID de ejecución de la canalización que ha provocado el cambio de estado. Consulte la llamada a la API GetPipelineExecution en la AWS CodePipeline API Reference.

  • La entrada pipeline-execution-attempt muestra el número de intentos, o reintentos, del ID de ejecución específico.

CodePipeline informa de un evento a EventBridge cada vez que cambia el estado de un recurso de sus cambios de Cuenta de AWS. Los eventos se emiten de forma garantizada, al menos una vez, para los siguientes recursos:

  • Ejecuciones de canalización

  • Ejecución de etapas

  • Ejecuciones de acción

EventBridge emite los eventos con el patrón y el esquema de eventos detallados anteriormente. En el caso de los eventos procesados, como los que recibe a través de notificaciones que ha configurado en la consola de Developer Tools, el mensaje del evento incluye campos de patrones de eventos con algunas variaciones. Por ejemplo, el campo detail-type se convierte en detailType. Para obtener más información, consulte la llamada a la API PutEvents en la referencia de la Amazon EventBridge API Reference.

Los siguientes ejemplos corresponden a eventos para CodePipeline. Siempre que sea posible, en cada ejemplo se muestra el esquema de un evento emitido junto con el esquema de un evento procesado.

Tipos de detalles

Al configurar los eventos para monitorizarlos, puede elegir el tipo de detalle del evento.

Puede configurar notificaciones para que se envíen cuando cambie el estado de:

  • Determinadas canalizaciones o todas las canalizaciones. Esto se controla utilizando "detail-type": "CodePipeline Pipeline Execution State Change".

  • Determinadas etapas o todas las etapas, de una canalización especificada o de todas las canalizaciones. Esto se controla utilizando "detail-type": "CodePipeline Stage Execution State Change".

  • Determinadas acciones o todas las acciones, de una etapa especificada o de todas las etapas, de una canalización especificada o de todas las canalizaciones. Esto se controla utilizando "detail-type": "CodePipeline Action Execution State Change".

nota

Los eventos emitidos por EventBridge contienen el parámetro detail-type, que se convierte en detailType cuando se procesan los eventos.

Tipo de detalle Estado Descripción
Cambio de estado de ejecución de canalización de CodePipeline CANCELADO La ejecución de la canalización se ha cancelado porque se ha actualizado su estructura.
ERROR La ejecución de la canalización no finalizó correctamente.
RESUMED Se ha reintentado la ejecución de una canalización que ha fallado en respuesta a la llamada a la API RetryStageExecution.
STARTED La ejecución de la canalización está en curso.
STOPPED El proceso de detención se ha completado y la ejecución de canalización se detiene.
STOPPING La ejecución de canalización se detiene debido a una solicitud para detener y esperar, o bien detener y abandonar, la ejecución de canalización.
SUCCEEDED La ejecución de la canalización finalizó correctamente.
SUPERSEDED

Mientras la ejecución de esta canalización esperaba a que se completase la siguiente etapa, una nueva ejecución de la canalización avanzó y continuó a través de la canalización en su lugar.

Cambio de estado de ejecución de etapa de CodePipeline CANCELADO La etapa se ha cancelado porque se ha actualizado la estructura de la canalización.
ERROR La etapa no ha finalizado correctamente.
RESUMED Se ha reintentado la ejecución de una etapa que ha fallado en respuesta a la llamada a la API RetryStageExecution.
STARTED La etapa se está ejecutando actualmente.
STOPPED El proceso de detención se ha completado y la ejecución de etapa se detiene.
STOPPING La ejecución de etapa se detiene debido a una solicitud para detener y esperar, o bien detener y abandonar, la ejecución de canalización.
SUCCEEDED La etapa ha finalizado correctamente.
Cambio de estado de ejecución de acción de CodePipeline ABANDONED La acción se abandona debido a una solicitud de detener y abandonar la ejecución de canalización.
CANCELADO La acción se ha cancelado porque se ha actualizado la estructura de la canalización.
ERROR Para las acciones de aprobación, el estado FAILED significa que la acción fue rechazada por el revisor o que ha tenido un error debido a una configuración incorrecta de la acción.
STARTED La acción se está ejecutando actualmente.
SUCCEEDED La acción ha finalizado correctamente.

Eventos de nivel de canalización

Los eventos a nivel de canalización se emiten cuando se produce un cambio de estado en la ejecución de una canalización.

Evento STARTED de canalización

Cuando se inicia la ejecución de una canalización, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada "myPipeline" de la región us-east-1. El campo id representa el ID del evento y el campo account representa el ID de la cuenta en la que se creó la canalización.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:03:07Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "trigger-type": "StartPipelineExecution", "trigger-detail": "arn:aws:sts::123456789012:assumed-role/Admin/my-user" }, "state": "STARTED", "version": 1.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-east-1", "source": "aws.codepipeline", "time": "2021-06-24T00:44:50Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "trigger-type": "StartPipelineExecution", "trigger-detail": "arn:aws:sts::123456789012:assumed-role/Admin/my-user" }, "state": "STARTED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "additionalAttributes": {} }

Evento STOPPING de inanición

Cuando la ejecución de una canalización se detiene, emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada myPipeline de la región us-west-2.

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:02:20Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "STOPPING", "version": 3.0, "pipeline-execution-attempt": 1.0 "stop-execution-comments": "Stopping the pipeline for an update" } }

Evento SUCCEEDED de canalización

Cuando la ejecución de una canalización se realiza correctamente, emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada myPipeline de la región us-east-1.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:03:44Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "SUCCEEDED", "version": 3.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-east-1", "source": "aws.codepipeline", "time": "2021-06-30T22:13:51Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "SUCCEEDED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": {} }

Evento SUCCEEDED de canalización (ejemplo con etiquetas Git)

Cuando la ejecución de una canalización tiene una etapa que se ha reintentado y se ha realizado correctamente, emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada myPipeline en la región eu-central-1 en la que execution-trigger está configurada para las etiquetas de Git.

nota

El campo execution-trigger tendrá tag-name o branch-name, según el tipo de evento que haya activado la canalización.

{ "version": "0", "id": "b128b002-09fd-4574-4eba-27152726c777", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2023-10-26T13:50:53Z", "region": "eu-central-1", "resources": [ "arn:aws:codepipeline:eu-central-1:123456789012:BuildFromTag" ], "detail": { "pipeline": "BuildFromTag", "execution-id": "e17b5773-cc0d-4db2-9ad7-594c73888de8", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "author-display-name": "Mary Major", "full-repository-name": "mmajor/sample-project", "provider-type": "GitLab", "author-email": "email_address", "commit-message": "Update file README.md", "author-date": "2023-08-16T21:08:08Z", "tag-name": "gitlab-v4.2.1", "commit-id": "commit_ID", "connection-arn": "arn:aws:codestar-connections:eu-central-1:123456789012:connection/0f5b706a-1a1d-46c5-86b6-f177321bcfb2", "author-id": "Mary Major" }, "state": "SUCCEEDED", "version": 32.0, "pipeline-execution-attempt": 1.0 } }

Evento FAILED de canalización

Cuando se produce un error en la ejecución de una canalización, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada "myPipeline" de la región us-west-2.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:55:43Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "FAILED", "version": 4.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:46:16Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "FAILED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": { "failedActionCount": 1, "failedActions": [ { "action": "Deploy", "additionalInformation": "Deployment <ID> failed" } ], "failedStage": "Deploy" }

Evento FAILED de canalización (ejemplo con etiquetas Git)

A menos que se produzca un error en la fase de origen, en el caso de una canalización configurada con desencadenadores, emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada myPipeline en la región eu-central-1 en la que execution-trigger está configurada para las etiquetas de Git.

nota

El campo execution-trigger tendrá tag-name o branch-name, según el tipo de evento que haya activado la canalización.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:55:43Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "author-display-name": "Mary Major", "full-repository-name": "mmajor/sample-project", "provider-type": "GitLab", "author-email": "email_address", "commit-message": "Update file README.md", "author-date": "2023-08-16T21:08:08Z", "tag-name": "gitlab-v4.2.1", "commit-id": "commit_ID", "connection-arn": "arn:aws:codestar-connections:eu-central-1:123456789012:connection/0f5b706a-1a1d-46c5-86b6-f177321bcfb2", "author-id": "Mary Major" }, "state": "FAILED", "version": 4.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:46:16Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "author-display-name": "Mary Major", "full-repository-name": "mmajor/sample-project", "provider-type": "GitLab", "author-email": "email_address", "commit-message": "Update file README.md", "author-date": "2023-08-16T21:08:08Z", "tag-name": "gitlab-v4.2.1", "commit-id": "commit_ID", "connection-arn": "arn:aws:codestar-connections:eu-central-1:123456789012:connection/0f5b706a-1a1d-46c5-86b6-f177321bcfb2", "author-id": "Mary Major" }, "state": "FAILED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": { "failedActionCount": 1, "failedActions": [ { "action": "Deploy", "additionalInformation": "Deployment <ID> failed" } ], "failedStage": "Deploy" }

Eventos de nivel de etapa

Los eventos a nivel de etapa se emiten cuando hay un cambio de estado en la ejecución de una etapa.

Evento STARTED e etapa

Cuando se inicia la ejecución de una etapa, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada "myPipeline" de la región us-east-1 para la etapa Prod.

Emitted event
{ "version": "0", "id": 01234567-EXAMPLE, "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": 123456789012, "time": "2020-01-24T22:03:07Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "version": 1.0, "execution-id": 12345678-1234-5678-abcd-12345678abcd, "start-time": "2023-10-26T13:49:39.208Z", "stage": "Prod", "state": "STARTED", "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Stage Execution State Change", "region": "us-east-1", "source": "aws.codepipeline", "time": "2021-06-24T00:45:40Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "stage": "Source", "state": "STARTED", "version": 1.0, "pipeline-execution-attempt": 0.0 }, "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "additionalAttributes": { "sourceActions": [ { "sourceActionName": "Source", "sourceActionProvider": "CodeCommit", "sourceActionVariables": { "BranchName": "main", "CommitId": "<ID>", "RepositoryName": "my-repo" } } ] } }

Evento STOPPING de etapa

Cuando una ejecución en fase se detiene, emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada myPipeline de la región us-west-2 para la etapa Deploy.

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:02:20Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "stage": "Deploy", "state": "STOPPING", "version": 3.0, "pipeline-execution-attempt": 1.0 } }

Evento STOPPED de etapa

Cuando se inicia la ejecución de una etapa, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada myPipeline de la región us-west-2 para la etapa Deploy.

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:21:39Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "stage": "Deploy", "state": "STOPPED", "version": 3.0, "pipeline-execution-attempt": 1.0 } }

La etapa se reanudó (RESUMED) tras el evento de reintento

Cuando se reanuda la ejecución de una etapa y hay una etapa que se ha vuelto a intentar, emite un evento que envía notificaciones con el siguiente contenido.

Cuando se vuelve a intentar una etapa, se muestra el campo stage-last-retry-attempt-time, como se muestra en el ejemplo. El campo se muestra en todos los eventos de la etapa si se ha realizado un reintento.

nota

El campo stage-last-retry-attempt-time estará presente en todos los eventos de fase posteriores una vez que se haya reintentado una etapa.

{ "version": "0", "id": "38656bcd-a798-5f92-c738-02a71be484e1", "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2023-10-26T14:14:56Z", "region": "eu-central-1", "resources": [ "arn:aws:codepipeline:eu-central-1:123456789012:BuildFromTag" ], "detail": { "pipeline": "BuildFromTag", "execution-id": "05dafb6a-5a56-4951-a858-968795364846", "stage-last-retry-attempt-time": "2023-10-26T14:14:56.305Z", "stage": "Build", "state": "RESUMED", "version": 32.0, "pipeline-execution-attempt": 2.0 } }

Eventos de nivel de acción

Los eventos a nivel de acción se emiten cuando se produce un cambio de estado en la ejecución de una acción.

Evento STARTED de acción

Cuando se inicia la ejecución de una acción, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada myPipeline de la región us-east-1 y para la acción de implementación myAction.

Emitted event
{ "version": "0", "id": 01234567-EXAMPLE, "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": 123456789012, "time": "2020-01-24T22:03:07Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": 12345678-1234-5678-abcd-12345678abcd, "start-time": "2023-10-26T13:51:09.981Z", "stage": "Prod", "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "myAction", "state": "STARTED", "type": { "owner": "AWS", "category": "Deploy", "provider": "CodeDeploy", "version": "1" }, "version": 2.0 "pipeline-execution-attempt": 1.0 "input-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-east-1-BUCKETEXAMPLE", "key": "myPipeline/SourceArti/KEYEXAMPLE" } } ] } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Action Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:45:44Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Deploy", "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "input-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-east-1-EXAMPLE", "key": "myPipeline/SourceArti/EXAMPLE" } } ], "state": "STARTED", "region": "us-east-1", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "additionalAttributes": {} }

Evento SUCCEEDED de acción

Cuando la ejecución de una acción se realiza correctamente, emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada "myPipeline" de la región us-west-2 y para la acción "Source". Para este tipo de evento, hay dos campos region diferentes. El campo region de evento especifica la región del evento de canalización. El campo region de la sección detail especifica la región de la acción.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:03:11Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Source", "execution-result": { "external-execution-url": "https://us-west-2.console.aws.amazon.com/codecommit/home#/repository/my-repo/commit/8cf40f2EXAMPLE", "external-execution-summary": "Added LICENSE.txt", "external-execution-id": "8cf40fEXAMPLE" }, "output-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-west-2-BUCKETEXAMPLE", "key": "myPipeline/SourceArti/KEYEXAMPLE" } } ], "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Source", "state": "SUCCEEDED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeCommit", "category": "Source", "version": "1" }, "version": 3.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Action Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:45:44Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:ACCOUNT:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "arn:aws:codepipeline:us-west-2:123456789012:myPipeline", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Source", "execution-result": { "external-execution-url": "https://us-west-2.console.aws.amazon.com/codecommit/home#/repository/my-repo/commit/8cf40f2EXAMPLE", "external-execution-summary": "Edited index.html", "external-execution-id": "36ab3ab7EXAMPLE" }, "output-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-west-2-EXAMPLE", "key": "myPipeline/SourceArti/EXAMPLE" } } ], "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Source", "state": "SUCCEEDED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeCommit", "category": "Source", "version": "1" }, "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": {} }

Evento FAILED de acción

Cuando se produce un error en la ejecución de una acción, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada "myPipeline" de la región us-west-2 y para la acción "Deploy".

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:55:43Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Deploy", "execution-result": { "external-execution-url": "https://us-west-2.console.aws.amazon.com/codedeploy/home?#/deployments/<ID>", "external-execution-summary": "Deployment <ID> failed", "external-execution-id": "<ID>", "error-code": "JobFailed" }, "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "state": "FAILED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 4.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Action Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:46:16Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "stage": "Deploy", "execution-result": { "external-execution-url": "https://console.aws.amazon.com/codedeploy/home?region=us-west-2#/deployments/<ID>", "external-execution-summary": "Deployment <ID> failed", "external-execution-id": "<ID>", "error-code": "JobFailed" }, "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "state": "FAILED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 13.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": { "additionalInformation": "Deployment <ID> failed" } }

Evento ABANDONED de acción

Cuando se suspende la ejecución de una acción, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada "myPipeline" de la región us-west-2 y para la acción "Deploy".

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:21:39Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "stage": "Deploy", "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "state": "ABANDONED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 3.0, "pipeline-execution-attempt": 1.0 } }

Creación de una regla que envíe una notificación sobre un evento de canalización

Una regla vigila determinados eventos y, a continuación, los dirige a los objetivos de AWS que elija. Puede crear una regla que ejecute una acción AWS automáticamente cuando se produzca otra acción AWS, o una regla que ejecute una acción AWS con regularidad según un cronograma establecido.

Enviar una notificación cada vez que cambie el estado de una canalización (consola)

Estos pasos muestran cómo utilizar la consola de EventBridge para crear una regla que envíe notificaciones de cambios en CodePipeline.

Para crear una regla de EventBridge que se aplique a la canalización con un origen de Amazon S3
  1. Abra la consola de Amazon EventBridge en https://console.aws.amazon.com/events/.

  2. En el panel de navegación, seleccione Reglas. Deje el bus predeterminado seleccionado o elija un bus de eventos. Elija Crear regla.

  3. En Nombre, introduzca un nombre para la regla.

  4. En Tipo de regla, elija Regla con un patrón de evento. Elija Siguiente.

  5. En Patrón de eventos, seleccione Servicios de AWS.

  6. En la lista desplegable Tipo de evento, elija el nivel de cambio de estado de la notificación.

    • Para una regla que se aplica a los eventos de nivel de canalización, elija CodePipeline Pipeline Execution State Change.

    • Para una regla que se aplica a los eventos de nivel de etapa, elija CodePipeline Stage Execution State Change.

    • Para una regla que se aplica a los eventos de nivel de acción, elija CodePipeline Action Execution State Change.

  7. Especifique los cambios de estado a los que se aplica la regla:

    • Para una regla que se aplica a todos los cambios de estado, elija Any state.

    • Para una regla que se aplica únicamente a algunos cambios de estado, elija Specific state(s) y, a continuación, elija uno o varios valores de estado de la lista.

  8. Si necesita patrones de eventos más detalladas de lo que permiten los selectores, también puede utilizar la opción Editar patrón de la ventana Vista previa de patrón de evento para designar un patrón de eventos con formato JSON.

    nota

    Si no se especifica lo contrario, se crea el patrón de eventos para todas las canalizaciones/etapas/acciones y estados.

    Para obtener patrones de eventos más detallados, puede copiar y pegar los siguientes patrones de eventos de muestra en la ventana Editar.

    • Utilice este patrón de eventos de muestra para capturar acciones de implementación y compilación con errores en todas las canalizaciones.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Action Execution State Change" ], "detail": { "state": [ "FAILED" ], "type": { "category": ["Deploy", "Build"] } } }
    • Utilice este patrón de eventos de muestra para capturar todas las acciones de aprobación rechazadas y con errores en todas las canalizaciones.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Action Execution State Change" ], "detail": { "state": [ "FAILED" ], "type": { "category": ["Approval"] } } }
    • Utilice este patrón de eventos de muestra para capturar todos los eventos de las canalizaciones especificadas.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Pipeline Execution State Change", "CodePipeline Action Execution State Change", "CodePipeline Stage Execution State Change" ], "detail": { "pipeline": ["myPipeline", "my2ndPipeline"] } }
  9. Elija Siguiente.

  10. En Tipos de destino, elija Servicio de AWS.

  11. En Seleccionar un destino, elija CodePipeline. En ARN de canalización, Introduzca el ARN de la canalización que se iniciará cuando la active esta regla.

    nota

    Para obtener el ARN de la canalización, ejecute el comando get-pipeline. El ARN de la canalización aparece en la salida. Se crea con el siguiente formato:

    arn:aws:codepipeline:región:cuenta:nombre-canalización

    ARN de canalización de muestra:

    arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline

  12. Para crear o especificar un rol de servicio de IAM que conceda permisos a EventBridge para invocar el destino asociado a la regla de EventBridge (en este caso, el destino es CodePipeline):

    • Elija Crear un nuevo rol para este recurso específico para crear un rol de servicio que conceda permisos a para iniciar las ejecuciones de la canalización cuando esta se active.

    • Elija Usar rol existente para especificar un rol de servicio que conceda permisos a EventBridge para iniciar las ejecuciones de la canalización cuando esta se active.

  13. Elija Siguiente.

  14. En la página Etiquetas, elija Siguiente:

  15. En la página Revisar y crear, revise la configuración de la regla. Si está satisfecho con la regla, elija Create rule (Crear regla).

Enviar una notification cuando cambie el estado de una canalización (CLI)

Estos pasos muestran cómo utilizar la CLI para crear una regla de Eventos de CloudWatch que envíe notificaciones de cambios en CodePipeline.

Para crear una regla mediante la AWS CLI, use el comando put-rule especificando:

  • Un nombre que identifique de forma inequívoca la regla que está creando. Este nombre debe ser único en todas las canalizaciones creadas con CodePipeline y asociadas a su cuenta de AWS.

  • El patrón de eventos para el origen y los campos de detalles utilizados por la regla. Para obtener más información, consulte: Amazon EventBridge y patrones de eventos.

Para crear una regla de EventBridge con CodePipeline como fuente de eventos
  1. Use el comando put-rule para crear una regla que especifique el patrón de eventos. (Consulte las tablas anteriores para ver los estados válidos).

    El siguiente comando de ejemplo utiliza --event-pattern para crear una regla llamada “MyPipelineStateChanges” que genera el evento de CloudWatch cuando se produce un error en la ejecución de una canalización denominada “myPipeline”.

    aws events put-rule --name "MyPipelineStateChanges" --event-pattern "{\"source\":[\"aws.codepipeline\"],\"detail-type\":[\"CodePipeline Pipeline Execution State Change\"],\"detail\":{\"pipeline\":[\"myPipeline\"],\"state\":[\"FAILED\"]}}"
  2. Llame al comando put-targets e incluya los siguientes parámetros:

    • El parámetro --rule se usa con el rule_name que creó con el comando put-rule.

    • El parámetro --targets se usa con el Id del destino de la lista de destinos y el ARN del tema de Amazon SNS.

    El siguiente comando de muestra especifica que, para la regla denominada MyPipelineStateChanges, el destino Id se compone del número uno, lo que indica que, en lo que puede ser una lista de destinos de la regla, se trata del destino 1. El comando de muestra también especifica un ARN de ejemplo para el tema de Amazon SNS.

    aws events put-targets --rule MyPipelineStateChanges --targets Id=1,Arn=arn:aws:sns:us-west-2:11111EXAMPLE:MyNotificationTopic
  3. Añada permisos para que EventBridge utilice el servicio de destino designado para invocar la notificación. Para obtener más información, consulte Uso de políticas basadas en recursos para Amazon EventBridge.