Monitorizació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.

Monitorizació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 subyacenteAPI, 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 GetPipelineExecution API llamada en la AWS CodePipeline APIReferencia.

  • 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 Cuenta de AWS cambia el estado de un recurso en tu ordenador. 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 PutEvents API llamada en 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 al que se utiliza detailType cuando se procesan los eventos.

Tipo de detalle Estado Descripción
CodePipeline Cambio de estado de ejecución de la canalización CANCELED La ejecución de la canalización se ha cancelado porque se ha actualizado su estructura.
FAILED La ejecución de la canalización no finalizó correctamente.
RESUMED Se ha vuelto a intentar ejecutar una canalización fallida en respuesta a la RetryStageExecution API llamada.
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 CANCELED La etapa se ha cancelado porque se ha actualizado la estructura de la canalización.
FAILED La etapa no ha finalizado correctamente.
RESUMED Se ha vuelto a intentar una etapa fallida en respuesta a la RetryStageExecution API llamada.
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.
CANCELED La acción se ha cancelado porque se ha actualizado la estructura de la canalización.
FAILED En el caso de las acciones de aprobación, el FAILED estado significa que la acción ha sido rechazada por el revisor o ha fallado debido a una configuración de acción incorrecta.
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.

STARTEDEvento 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": {} }

STOPPINGEvento Pipeline

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" } }

SUCCEEDEDEvento Pipeline

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": {} }

Pipeline SUCCEEDED (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 } }

FAILEDEvento Pipeline

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" }

Pipeline FAILED (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.

STARTEDEvento escénico

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" } } ] } }

STOPPINGEvento escénico

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 } }

STOPPEDEvento escénico

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 } }

Evento de reintento etapa RESUMED tras etapa

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 de acción STARTED

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": {} }

SUCCEEDEDEvento 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": {} }

FAILEDEvento 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" } }

ABANDONEDEvento 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)

En estos pasos se muestra cómo usar la EventBridge consola para crear una regla que envíe notificaciones de los cambios introducidos 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 Next (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 los patrones de eventos son más detallados de lo que permiten los selectores, también puede utilizar la opción Editar patrón de la ventana Patrón de eventos para designar un patrón de eventos en formato. JSON

    nota

    Si no se especifica lo contrario, se crea el patrón de eventos para todos pipelines/stages/actions los 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 Next (Siguiente).

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

  11. En Seleccione un objetivo, elija CodePipeline. En Pipeline ARN, introduzca la canalización ARN para que la canalización se inicie según esta regla.

    nota

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

    arn:aws:codepipeline:region:account:pipeline-name

    Ejemplo de canalización: ARN

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

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

    • Elige Crear una nueva función para este recurso específico a fin de crear una función de servicio que te dé EventBridge permisos para iniciar las ejecuciones de tu 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 Next (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).

Envía una notificación cuando cambie el estado de la canalización (CLI)

En estos pasos se muestra cómo utilizarla CLI para crear una regla de CloudWatch eventos para enviar notificaciones de cambios en ella CodePipeline.

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

  • 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 --targets parámetro se usa con la lista Id del objetivo de la lista de objetivos y con el SNS tema ARN de Amazon.

    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 sample también especifica un ejemplo ARN para el SNS tema de Amazon.

    aws events put-targets --rule MyPipelineStateChanges --targets Id=1,Arn=arn:aws:sns:us-west-2:11111EXAMPLE:MyNotificationTopic
  3. Añade 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