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óndetail
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óndetail
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.
Temas
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.
Temas
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.
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
.
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
.
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.
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.
Temas
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
.
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.
Temas
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
.
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.
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"
.
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.
Temas
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
Abre la EventBridge consola de Amazon en https://console.aws.amazon.com/events/
. -
En el panel de navegación, seleccione Reglas. Deje el bus predeterminado seleccionado o elija un bus de eventos. Elija Crear regla.
-
En Nombre, introduzca un nombre para la regla.
-
En Tipo de regla, elija Regla con un patrón de evento. Elija Next (Siguiente).
-
En Patrón de eventos, seleccione Servicios de AWS .
-
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.
-
-
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.
-
-
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"] } }
-
-
Elija Next (Siguiente).
-
En Tipos de destino, elija Servicio de AWS .
-
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
-
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.
-
-
Elija Next (Siguiente).
-
En la página Etiquetas, elija Siguiente:
-
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
-
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\"]}}"
-
Llame al comando put-targets e incluya los siguientes parámetros:
-
El parámetro
--rule
se usa con elrule_name
que creó con el comando put-rule. -
El
--targets
parámetro se usa con la listaId
del objetivo de la lista de objetivos y con el SNS temaARN
de Amazon.
El siguiente comando de muestra especifica que, para la regla denominada
MyPipelineStateChanges
, el destinoId
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 ejemploARN
para el SNS tema de Amazon.aws events put-targets --rule MyPipelineStateChanges --targets Id=1,Arn=arn:aws:sns:us-west-2:11111EXAMPLE:MyNotificationTopic
-
-
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