Tutorial: Configurar una regla de Eventos de CloudWatch para recibir notificaciones por correo electrónico sobre los cambios de estado de las canalizaciones - AWS CodePipeline

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 Detectar los cambios de estado de las canalizaciones y reaccionar ante ellos con Amazon CloudWatch Events.

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.

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 enlace 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 a este tema a través de Amazon SNS. Para crear un tema:

  1. Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns.

  2. Elija Create new topic.

  3. 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).

    
            Creación del tema de notificación mediante Amazon SNS.
  4. Elija Create new topic.

    Para obtener más información, consulte Creación de 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:

  1. En la consola de Amazon SNS, en la lista Topics (Temas), seleccione la casilla situada junto al tema nuevo. Elija Actions, Subscribe to topic.

  2. En el cuadro de diálogo Create subscription, compruebe que aparece un ARN en Topic ARN.

  3. Para Protocol, elija Email.

  4. En Endpoint, escriba la dirección de correo electrónico completa del destinatario. Compare sus resultados con los siguientes:

    
            Finalización de la creación de la notificación mediante la suscripción al tema.
  5. Elija Create Subscription.

  6. 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 Suscripción a un tema en la Guía para desarrolladores de Amazon SNS.

Paso 2: Crear una regla y agregar el tema de SNS como destino

Cree una regla con notificación de Eventos de CloudWatch con CodePipeline como origen de eventos.

  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, seleccione Events.

  3. Elija Create rule. En Event source (Origen de eventos), elija AWS CodePipeline. Como Event Type, elija Pipeline Execution State Change.

  4. Seleccione Specific state(s) (Estado[s] específico[s]) y, a continuación, elija FAILED.

  5. 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”.

    
            El nombre de una canalización puede editarse manualmente en la estructura JSON de la regla.

    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" ] } }
  6. En Targets, seleccione Add target.

  7. En la lista de destinos, elija SNS topic. En Topic, introduzca el tema que ha creado.

  8. Expanda Configure input, a continuación, elija Input Transformer.

  9. 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."
  10. Seleccione Configure details.

  11. En la página Configure rule details, escriba un nombre y una descripción opcional. Para State, deje seleccionado el cuadro Enabled.

  12. Elija Create rule.

  13. 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.

  14. Para cambiar el comportamiento de una regla, elija la regla en la consola de CloudWatch y, a continuación, elija Actions (Acciones), Edit (Editar). Edite la regla, elija Configure details y, a continuación, elija Update rule.

    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 Actions (Acciones), Disable (Deshabilitar).

    Para eliminar una regla, elija la regla en la consola de CloudWatch y, a continuación, elija Actions (Acciones), Delete (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 Amazon CloudWatch Events, consulte Eliminación (cancelar la suscripción a un tema de Amazon SNS) y DeleteRule en la Referencia de la API de Amazon CloudWatch Events.