Gestión de eventos de AWS CloudFormation mediante Amazon EventBridge - AWS CloudFormation

Gestión de eventos de AWS CloudFormation mediante Amazon EventBridge

Amazon EventBridge es un servicio sin servidor que utiliza eventos para conectar los componentes de la aplicación entre sí, lo que facilita la creación de aplicaciones escalables basadas en eventos. La arquitectura basada en eventos es un estilo de creación de sistemas de software de acoplamiento flexible que funcionan juntos emitiendo eventos y respondiendo a ellos. Los eventos representan un cambio en un recurso o entorno.

Como ocurre con muchos servicios de AWS, AWS CloudFormation genera y envía eventos al bus de eventos predeterminado de EventBridge. (El bus de eventos predeterminado se aprovisiona de manera automática en cada cuenta de AWS). Un bus de eventos es un enrutador que recibe eventos y los envía a cero o más destinos u objetivos. Las reglas que se especifican al bus de eventos evalúan los eventos a medida que llegan. Cada regla comprueba si un evento coincide con el patrón de evento de la regla. Si el evento coincide, el bus de eventos envía el evento a los destinos especificados.

Los servicios de AWS envían eventos al bus de eventos predeterminado de EventBridge. Si un evento coincide con el patrón de eventos de una regla determinada, EventBridge envía el evento al destino especificado en la regla.

Eventos de CloudFormation

AWS CloudFormation envía eventos a EventBridge siempre que se lleve a cabo una operación de creación, actualización, eliminación o detección de desviaciones en la pila. AWS CloudFormation también envía eventos a Amazon EventBridge sobre cambios de estado en conjuntos de pilas e instancias de conjuntos de pilas. Puede utilizar las reglas de EventBridge para dirigir eventos a destinos que haya definido. Estos eventos tienen la garantía de entregarse y pueden entregarse sin ordenar.

Como los eventos de CloudFormation representan cambios en las pilas o conjuntos de pilas y sus recursos, puede utilizarlos para iniciar los flujos de trabajo asociados a los eventos respectivos. Por ejemplo:

  • Cree etiquetas específicas de pilas o conjuntos de pilas en todos los recursos aprovisionados a través de AWS CloudFormation.

  • Establezca una asociación entre la pila o conjunto de pila de CloudFormation y Amazon WorkSpaces Application Manager (Amazon WAM).

  • Especifique una asociación con un AppRegistry para la pila o conjunto de pila creado.

CloudFormation genera los siguientes eventos y los envía al bus de eventos predeterminado de EventBridge. Para obtener más información, consulte Referencia detallada de los eventos de AWS CloudFormation.

Tipo de evento Descripción

Cambio de estado del recurso

Cualquier actualización realizada en una pila que cambie las propiedades de los recursos subyacentes.

Para obtener una lista de los tipos de recursos admitidos AWS, consulte Referencia de tipos de recursos y propiedades de AWS.

Cambio de estado de la pila

Representa un cambio de estado en una pila determinada.

Para obtener información detallada, consulte Códigos de estado de pilas.

Cambio de estado de detección de desviaciones

Representa una actualización de la detección de desviaciones iniciada por el usuario en una pila determinada.

Para obtener una lista completa de tipos completamente mutables e inmutables que admiten la detección de desviaciones, consulte Tipo de recurso compatible

Cambio de estado de StackSet

Representa un cambio de estado en un conjunto de pila determinado.

Cambio de estado de instancia de pila de StackSet

Representa un cambio de estado en una instancia de pila StackSet específica.

Para obtener información detallada, consulte Códigos de estado de la instancia de pila.

Estado de la operación de StackSet

Representa un cambio de estado a una operación determinada de StackSet.

Para obtener información detallada, consulte Códigos de estado de StackSets.

Envío de eventos de AWS CloudFormation con reglas de EventBridge

Para que el bus de eventos predeterminado de EventBridge envíe los eventos de AWS CloudFormation a un destino, debe crear una regla que contenga un patrón de eventos que coincida con los datos de los eventos de AWS CloudFormation deseados.

El proceso para crear una regla consta de los siguientes pasos generales:

  1. La creación de un patrón de eventos para la regla que especifica:

    • AWS CloudFormation es la fuente de los eventos que evalúa la regla.

    • (Opcional): cualquier otro dato del evento con el que se pueda comparar.

    Para obtener más información, consulte Creación de patrones de eventos para los eventos de AWS CloudFormation

  2. (Opcional): creación de un transformador de entrada que personalice los datos del evento antes de que EventBridge pase la información al destino de la regla.

    Para obtener más información, consulte Transformación de entrada en la Guía del usuario de EventBridge.

  3. Especificación de los destinos a los que quiere que EventBridge entregue los eventos que coincidan con el patrón de eventos.

    Los objetivos pueden ser otros servicios de AWS, aplicaciones de software como servicio (SaaS), destinos de API u otros puntos de conexión personalizados. Para más información, consulte Destinos en la Guía del usuario de EventBridge.

Para obtener instrucciones detalladas sobre cómo crear reglas de bus de eventos, consulte Creación de reglas que reaccionan a eventos en la Guía del usuario de EventBridge.

Creación de patrones de eventos para los eventos de AWS CloudFormation

Cuando AWS CloudFormation envía un evento al bus de eventos predeterminado, EventBridge utiliza el patrón de eventos definido para cada regla para determinar si el evento debe enviarse a los destinos de la regla. Un patrón de eventos coincide con los datos de los eventos de AWS CloudFormation deseados. Cada patrón de eventos es un objeto JSON que contiene:

  • Un atributo source que identifica el servicio que envía el evento. En el caso de eventos de AWS CloudFormation, la fuente es aws.cloudformation.

  • (Opcional): un atributo detail-type que contiene una matriz de los tipos de eventos que deben coincidir.

  • (Opcional): un atributo detail que contiene cualquier otro dato de evento con el que coincidir.

    Por ejemplo, el ID de la pila, los recursos involucrados, el estado de varios recursos y otros datos relevantes para un tipo concreto de eventos.

Por ejemplo, el siguiente patrón de eventos coincide con todos los eventos de cambio de estado de los recursos:

{ "source": ["aws.cloudformation"], "detail-type": ["CloudFormation Resource Status Change"] }

Si bien el siguiente patrón de eventos usa datos detallados de eventos para coincidir solo con los eventos de cambio de estado del recurso en los que CloudFormation crea un nuevo recurso AWS::S3::Bucket o AWS::SNS::Topic:

{ "source": ["aws.cloudformation"], "detail-type": ["CloudFormation Resource Status Change"], "detail": { "status-details": { "status": ["CREATE_COMPLETE"] }, "resource-type": ["AWS::S3::Bucket", "AWS::SNS::Topic"] } }

Para obtener más información sobre la escritura de los patrones de eventos, consulte Patrones de eventos en la Guía del usuario de EventBridge.

Prueba de patrones de eventos para los eventos de AWS CloudFormation en EventBridge

Puede usar el entorno aislado de EventBridge para definir y probar de forma rápida un patrón de eventos, sin tener que completar el proceso más amplio de creación o edición de una regla. Con el entorno aislado, puede definir un patrón de eventos y usar un evento de muestra para confirmar que el patrón coincide con los eventos deseados. EventBridge le dará la opción de crear una nueva regla por medio de ese patrón de eventos de manera directa desde el entorno aislado.

Para obtener más información, consulte Prueba de un patrón de eventos con el entorno aislado de EventBridge en la Guía del usuario de EventBridge.

Permisos de Amazon EventBridge

AWS CloudFormation no requiere permisos adicionales para entregar eventos a Amazon EventBridge. Los eventos contienen información que ya está disponible a través de las operaciones de la API de CloudFormation.

Los objetivos que especifique pueden necesitar permisos o configuraciones específicos. Para obtener más información sobre el uso de servicios específicos para los destinos, consulte Destinos de Amazon EventBridge en la Guía del usuario de Amazon EventBridge.

Recursos adicionales de EventBridge

Consulte los siguientes temas en la Guía del usuario de Amazon EventBridge para obtener más información sobre cómo utilizar EventBridge para procesar y administrar eventos.

  • Para obtener información detallada sobre cómo funcionan los buses de eventos, consulte bus de eventos de Amazon EventBridge.

  • Para obtener información sobre la estructura de los eventos, consulte Eventos.

  • Para obtener información sobre cómo crear patrones de eventos para que EventBridge los utilice al comparar eventos con reglas, consulte Patrones de eventos.

  • Para obtener información sobre la creación de reglas para especificar qué eventos procesa EventBridge, consulte Reglas.

  • Para obtener información sobre cómo especificar los servicios u otros destinos a los que EventBridge envía los eventos coincidentes, consulte Destinos.