Tutorial: Configurar una regla de Eventos de CloudWatch para recibir notificaciones por correo electrónico sobre los cambios de estado de las canalizaciones
Después de configurar una canalización en AWS CodePipeline, puede configurar una regla de Eventos de CloudWatch para enviar notificaciones cuando se produzcan cambios en el estado de ejecución de las canalizaciones, o en las etapas o acciones de estas. Para obtener más información sobre cómo utilizar Eventos de CloudWatch para configurar las notificaciones de los cambios de estado de las canalizaciones, consulte Monitorización de eventos de CodePipeline.
En este tutorial, va a configurar una notificación para enviar un correo electrónico cuando el estado de una canalización cambie a FAILED. Este tutorial utiliza un método transformador de entrada para crear la regla de Eventos de CloudWatch. Transforma los detalles del esquema del mensaje para entregarlo en un formato legible.
nota
A medida que cree los recursos para este tutorial, como la notificación de Amazon SNS y la regla de Eventos de CloudWatch, asegúrese de que los recursos se crean en la misma región de AWS que su canalización.
Temas
Paso 1: Configurar una notificación de correo electrónico mediante Amazon SNS
Amazon SNS coordina el uso de temas para entregar mensajes a clientes o puntos de conexión de suscripción. Utilice Amazon SNS para crear un tema de notificación y, a continuación, suscríbase al tema con su dirección de correo electrónico. El tema de Amazon SNS se añadirá como destino a su regla de Eventos de CloudWatch. Para obtener más información, consulte la Guía para desarrolladores de Amazon Simple Notification Service.
Cree o identifique un tema en Amazon SNS. CodePipeline utilizará Eventos de CloudWatch para enviar notificaciones sobre este tema a través de Amazon SNS. Para crear un tema:
-
Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns
. -
Elija Crear nuevo tema.
-
En el cuadro de diálogo Create new topic (Crear un nuevo tema), en Topic name (Nombre del tema), escriba un nombre para el tema (por ejemplo,
PipelineNotificationTopic
). -
Elija Crear nuevo tema.
Para obtener más información, consulte Crear un tema en la Guía para desarrolladores de Amazon SNS.
Suscriba a uno o varios destinatarios al tema para que reciban notificaciones por correo electrónico. Para suscribir a un destinatario a un tema:
-
En la consola de Amazon SNS, en la lista Temas, seleccione la casilla situada junto al tema nuevo. Elija Acciones, Suscribirse a tema.
-
En el cuadro de diálogo Create subscription, compruebe que aparece un ARN en Topic ARN.
-
En Protocolo, elija Correo electrónico.
-
En Endpoint, escriba la dirección de correo electrónico completa del destinatario.
-
Elija Create subscription (Crear suscripción).
-
Amazon SNS envía un correo electrónico de confirmación de suscripción al destinatario. Para recibir notificaciones por correo electrónico, el destinatario debe utilizar el enlace Confirm subscription de este correo electrónico. Cuando el destinatario hace clic en el enlace, si se ha suscrito correctamente, Amazon SNS muestra un mensaje de confirmación en el navegador web.
Para obtener más información, consulte Suscribirse a un tema en la Guía del desarrollador de Amazon SNS.
Paso 2: Crear una regla y agregar el tema de SNS como destino
Crear una regla de Eventos de CloudWatch para CodePipeline como fuente de evento
Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/
. -
En el panel de navegación, elija Events (Eventos).
-
Elija Crear regla. En Event source (Origen de eventos), elija AWS CodePipeline. Como Event Type, elija Pipeline Execution State Change.
-
Seleccione Specific state(s) (Estado[s] específico[s]) y, a continuación, elija
FAILED
. -
Elija Edit para abrir el editor de JSON para el panel Event Pattern Preview. Añada el parámetro
pipeline
con el nombre de la canalización, tal y como se muestra en el siguiente ejemplo para una canalización denominada “myPipeline”.Puede copiar el patrón de eventos aquí y pegarlo en la consola:
{ "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Pipeline Execution State Change" ], "detail": { "state": [ "FAILED" ], "pipeline": [ "myPipeline" ] } }
-
En Targets, seleccione Add target.
-
En la lista de destinos, elija SNS topic. En Topic, introduzca el tema que ha creado.
-
Expanda Configure input, a continuación, elija Input Transformer.
-
En el cuadro Input Path, escriba los siguientes pares clave-valor.
{ "pipeline" : "$.detail.pipeline" }
En el cuadro Input Template, escriba lo siguiente:
"The Pipeline <pipeline> has failed."
-
Seleccione Configurar los detalles.
-
En la página Configure rule details, escriba un nombre y una descripción opcional. Para State, deje seleccionado el cuadro Enabled.
-
Elija Crear regla.
-
Confirme que CodePipeline está enviando notificaciones de compilación. Por ejemplo, compruebe si hay correos electrónicos de notificación de compilación en su bandeja de entrada.
-
Para cambiar el comportamiento de una regla, elija la regla en la consola de CloudWatch y, a continuación, elija Acciones, Editar. Edite la regla, elija Configurar detalles y, a continuación, elija Actualizar regla.
Para dejar de utilizar una regla para enviar notificaciones de compilación, en la consola de CloudWatch , elija la regla y, a continuación, elija Acciones, Deshabilitar.
Para eliminar una regla, elija la regla en la consola de CloudWatch y, a continuación, elija Acciones, Eliminar.
Paso 3: Limpiar recursos
Una vez completado este tutorial, debe eliminar la canalización y los recursos que utiliza para que no se le cobre por el uso continuado de esos recursos.
Para obtener información sobre cómo eliminar la notificación de SNS y la regla de Eventos de Amazon CloudWatch, consulte Eliminación (cancelar la suscripción a un tema de Amazon SNS) y la referencia DeleteRule
en la Amazon CloudWatch Events API Reference.