Supervisión de CodePipeline eventos - AWS CodePipeline

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 CodePipeline eventos

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

nota

Amazon EventBridge es la forma preferida de gestionar tus eventos. Amazon CloudWatch Events y EventBridge son el mismo servicio y API subyacentes, pero EventBridge ofrecen más funciones. Los cambios que realices en cualquiera de CloudWatch los eventos 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 supervisar los eventos, debe crear una regla con el servicio que está supervisando como fuente de eventos, por ejemplo CodePipeline. Por ejemplo, puede crear una regla con un patrón de eventos que se 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ñadas tu destino, también debes conceder permisos 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 notifica un evento EventBridge cada vez que el estado de un recurso tuyo Cuenta de AWS cambia. Los eventos se emiten de at-least-once forma garantizada para los siguientes recursos:

  • Ejecuciones de canalización

  • Ejecución de etapas

  • Ejecuciones de acción

Los eventos se emiten EventBridge 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, consulta la llamada a la PutEvents API en la Amazon EventBridge API Reference.

En los siguientes ejemplos se muestran los eventos de 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 detail-type parámetro, que se convierte detailType cuando se procesan los eventos.

Tipo de detalle Estado Descripción
CodePipeline Cambio de estado de ejecución de la canalización 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.

CodePipeline Cambio de estado de ejecución de la etapa 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.
CodePipeline Cambio de estado de ejecución de la acción 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 AWS los objetivos que tú elijas. Puede crear una regla que ejecute una AWS acción automáticamente cuando se produzca otra AWS acción, o una regla que ejecute una AWS acción 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 usar la EventBridge consola para crear una regla que envíe notificaciones de cambios en ella CodePipeline.

Para crear una EventBridge regla que se dirija a su canalización con una fuente de Amazon S3
  1. Abre la EventBridge consola de Amazon 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 ver una regla que se aplique a los eventos a nivel de canalización, elija CodePipelinePipeline Execution State Change.

    • Para ver una regla que se aplique a los eventos de nivel de fase, selecciona Cambio de estado de ejecución por CodePipelinefase.

    • Para ver una regla que se aplique a los eventos de nivel de acción, selecciona Cambio de estado de ejecución de la CodePipelineacción.

  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 Seleccione un objetivo, 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:80398 EJEMPLO: MyFirstPipeline

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

    • Seleccione Crear una nueva función para este recurso específico a fin de crear una función de servicio que le dé EventBridge permisos para iniciar las ejecuciones de su canalización.

    • Selecciona Usar el rol existente para introducir un rol de servicio que te dé EventBridge permisos para iniciar las ejecuciones de tu canalización.

  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 usar la CLI para crear una regla de CloudWatch eventos para enviar notificaciones de cambios CodePipeline.

Para usar la AWS CLI para crear una regla, llame al put-rule comando y especifique:

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

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

Para crear una EventBridge CodePipeline regla con el origen del evento
  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 se utiliza --event-pattern para crear una regla llamada “MyPipelineStateChanges” que emite el CloudWatch evento cuando se produce un error en la ejecución de una canalización para la 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. Agregue permisos EventBridge para usar el servicio de destino designado para invocar la notificación. Para obtener más información, consulta Uso de políticas basadas en recursos para Amazon. EventBridge