View a markdown version of this page

EventBridge Utilícelo con las canalizaciones de Image Builder - Generador de Imágenes de EC2

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.

EventBridge Utilícelo con las canalizaciones de Image Builder

AWS y los servicios asociados transmiten los eventos a los autobuses de EventBridge eventos de Amazon casi en tiempo real. También puedes enviar tus propios eventos personalizados. Los buses de eventos usan reglas para dirigir cada evento a uno o más objetivos.

Image Builder funciona EventBridge en dos direcciones independientes:

Para obtener más información sobre los eventos que envía Image Builder y los campos de cada evento, consulte. Mensajes de eventos que envía Generador de imágenes

nota

Los autobuses de eventos son Region-specific. Una regla y los recursos que invoca suelen estar en la misma región; para enrutar entre regiones, diríjase a un bus de eventos de la región de destino. Image Builder publica sus eventos en el bus de eventos predeterminado de la región en la que se ejecuta la compilación.

EventBridge términos

Los siguientes términos le ayudan a entender cómo EventBridge se integra con sus canalizaciones de Image Builder.

Event

Describe un cambio en un entorno que puede afectar a uno o más recursos de la aplicación. El entorno puede ser un AWS entorno, un servicio o una aplicación de un socio de SaaS o una de sus aplicaciones o servicios. También puede configurar eventos programados en una línea de tiempo.

Bus de eventos

Una canalización que recibe datos de eventos de aplicaciones y servicios.

origen

El servicio o la aplicación que envió el evento al bus de eventos.

Target

Un recurso o punto final que se EventBridge invoca cuando coincide con una regla y entrega datos del evento al objetivo.

Regla

Una regla hace coincidir eventos de entrada y los dirige a destinos para procesamiento. Una sola regla puede enviar un evento a varios destinos, que luego pueden ejecutarse en paralelo. Las reglas se basan en un patrón de eventos o en un cronograma.

Patrón

Un patrón de eventos define la estructura del evento y los campos con los que coincide una regla para iniciar la acción objetivo.

Schedule

Las reglas de programación realizan una acción según un cronograma, como ejecutar una canalización de Generador de Imágenes para actualizar una imagen trimestralmente. Existen dos tipos de expresiones de programación:

  • Expresiones Cron: coinciden con criterios de programación específicos mediante la sintaxis cron, que puede describir criterios simples; por ejemplo, ejecutar semanalmente un día específico. También puede establecer criterios más complejos, como que se ejecute trimestralmente el quinto día del mes, entre las 2 de la mañana y las 4 de la mañana.

  • Expresiones de frecuencia: especifican un intervalo regular cuando se invoque el objetivo, por ejemplo, cada 12 horas.

Consulta EventBridge las reglas de tu canalización de Image Builder

La pestaña de EventBridge reglas de la página de detalles de las canalizaciones de imágenes de Image Builder muestra los buses de EventBridge eventos a los que tiene acceso su cuenta y las reglas del bus de eventos seleccionado que se aplican a la canalización actual. Esta pestaña también enlaza directamente con la EventBridge consola para crear nuevos recursos.

Acciones que enlazan con la EventBridge consola
  • Creación de un bus de eventos

  • Creación de reglas

Para obtener más información EventBridge, consulta los siguientes temas en la Guía del EventBridge usuario de Amazon.

Activa la creación de un oleoducto según un cronograma

Establezca una canalización de Image Builder como objetivo de una regla de EventBridge programación para actualizar una imagen con una cadencia regular. En el siguiente ejemplo, se crea una regla que inicia la creación de una canalización cada 90 días.

nota

Una canalización también puede tener su propia programación integrada (una expresión cron o de tasa almacenada en la canalización). Image Builder administra esa programación y es independiente de cualquier EventBridge regla:

  • Utilice el cronograma de canalización para una reconstrucción simple y recurrente. También puede bloquear las compilaciones a partir de actualizaciones de dependencias y deshabilitar automáticamente una canalización fallida. Consulte la Schedule referencia de la API de EC2 Image Builder.

  • Utilice una EventBridge regla para iniciar una compilación a partir de un patrón de eventos o para distribuir un desencadenador a varios objetivos.

Consola de administración de AWS
  1. Abra la consola de EC2 Image Builder en https://console.aws.amazon.com/imagebuilder/.

  2. Para ver una lista de las canalizaciones de imágenes creadas en su cuenta, elija canalizaciones de imágenes en el panel de navegación.

    nota

    La lista de canalizaciones de imágenes incluye un indicador del tipo de imagen de salida que crea la canalización: AMI o. Docker

  3. Para ver los detalles o editar una canalización, elija el enlace con el nombre de la canalización. Esto abre la vista detallada de la canalización.

    nota

    También puede seleccionar la casilla junto al nombre de la canalización, y, a continuación, Ver detalles.

  4. Abra la pestaña de EventBridge reglas.

  5. Mantenga el bus de eventos predeterminado que está preseleccionado en el panel del bus de eventos.

  6. Elija Crear regla. Esto te llevará a la página de creación de reglas en la EventBridge consola de Amazon.

  7. Escriba un nombre y una descripción para la regla. El nombre de la regla debe ser único en el bus de eventos de la región seleccionada.

  8. En el panel Definir patrón, elija la opción Programar. Esto expande el panel, con la Frecuencia fija para todas las opciones seleccionadas.

  9. Introduzca 90 en el primer cuadro y seleccione Días en la lista desplegable.

  10. Realice las siguientes acciones en el panel Seleccionar objetivos:

    1. Seleccione EC2 Image Builder en la lista desplegable Objetivo.

    2. Para aplicar la regla a una canalización de Generador de Imágenes, seleccione la canalización de destino en la lista desplegable de Canalización de imágenes.

    3. EventBridge necesita permiso para iniciar una compilación para la canalización seleccionada. Para este ejemplo, mantenga la opción predeterminada de Crear un nuevo rol para este recurso específico.

    4. Elija Agregar objetivo.

  11. Elija Creación.

nota

La EventBridge consola actual puede crear programaciones mediante el EventBridge planificador, y las etiquetas y los pasos exactos pueden cambiar con el tiempo. La Guía del EventBridge usuario de Amazon enlazada es fundamental para la experiencia actual de la consola.

AWS CLI

Estos pasos crean una regla de programación que inicia la creación de una canalización cada 90 días. EventBridge necesita una función de IAM que pueda asumir para acceder a tu imagebuilder:StartImagePipelineExecution canalización.

  1. Crea una regla con una expresión de tasa:

    aws events put-rule \ --name refresh-image-every-90-days \ --schedule-expression "rate(90 days)"
  2. Cree un rol de IAM que EventBridge pueda asumir, con esta política de confianza:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" }] }

    Adjunte una política de permisos que permita iniciar el proceso:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "imagebuilder:StartImagePipelineExecution", "Resource": "arn:aws:imagebuilder:us-west-2:111122223333:image-pipeline/my-pipeline" }] }
  3. Añade la canalización como objetivo de la regla, haciendo referencia a la función del paso anterior:

    aws events put-targets \ --rule refresh-image-every-90-days \ --targets '[{ "Id": "1", "Arn": "arn:aws:imagebuilder:us-west-2:111122223333:image-pipeline/my-pipeline", "RoleArn": "arn:aws:iam::111122223333:role/EventBridgeImageBuilderRole" }]'
  4. Confirme que el objetivo esté adjunto:

    aws events list-targets-by-rule --rule refresh-image-every-90-days
nota

Para obtener más información sobre la configuración de las reglas de expresión de tarifas que no se abordan en este ejemplo, consulte las expresiones de tarifas en la Guía del EventBridge usuario de Amazon.

Activa la creación de una canalización a partir de un patrón de eventos

En lugar de un cronograma, puedes iniciar la creación de una canalización cuando un evento coincide con un patrón. Crea una regla con un patrón de eventos y, a continuación, añade tu canalización como objetivo (con la misma función de IAM que se describe enActiva la creación de un oleoducto según un cronograma).

En el siguiente ejemplo, se inicia una compilación cada vez que se convierte en una imagen base específica AVAILABLE (por ejemplo, para encadenar una creación de imagen dependiente una vez finalizada su imagen base). El resources prefijo aplica la regla a la imagen base para que coincida solo con esa imagen y no con la propia salida de la canalización dependiente:

{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder Image State Change"], "detail": { "state": { "status": ["AVAILABLE"] } }, "resources": [{ "prefix": "arn:aws:imagebuilder:us-west-2:111122223333:image/my-base-image/" }] }
importante

Aplica el patrón de eventos a la imagen base, como se muestra en el resources prefijo de este ejemplo. Un patrón que coincida con todas las AVAILABLE imágenes de la cuenta también coincide con la propia imagen de salida de la canalización dependiente, que vuelve a iniciar la canalización y puede crear un bucle de creación sin fin. Filtra según el nombre de la imagen base o el prefijo ARN específicos para que la regla coincida solo con la imagen deseada.

Consola de administración de AWS
  1. Abre la EventBridge consola de Amazon en. https://console.aws.amazon.com/events/

  2. Selecciona Reglas y, a continuación, Crear regla. Mantén el bus de eventos predeterminado.

  3. Introduzca un nombre y una descripción. En Tipo de regla, elija Regla con un patrón de evento.

  4. Para el origen del evento, elija Otro y pegue el patrón de eventos de arriba en el cuadro Patrón de eventos.

  5. En el panel Seleccionar objetivos, elija EC2 Image Builder una opción en la lista desplegable Destino y, a continuación, elija la canalización que desea crear en la lista desplegable Canalización de imágenes.

  6. EventBridge necesita permiso para iniciar la canalización. Mantenga la opción predeterminada para crear un nuevo rol para este recurso específico.

  7. Seleccione Creación de regla.

AWS CLI

Cree la regla y añada la canalización como destino:

aws events put-rule \ --name rebuild-on-base-available \ --event-pattern '{"source":["aws.imagebuilder"],"detail-type":["EC2 Image Builder Image State Change"],"detail":{"state":{"status":["AVAILABLE"]}},"resources":[{"prefix":"arn:aws:imagebuilder:us-west-2:111122223333:image/my-base-image/"}]}' aws events put-targets \ --rule rebuild-on-base-available \ --targets '[{"Id":"1","Arn":"arn:aws:imagebuilder:us-west-2:111122223333:image-pipeline/dependent-pipeline","RoleArn":"arn:aws:iam::111122223333:role/EventBridgeImageBuilderRole"}]'

Para ver los eventos con los que puedes hacer coincidir y sus campos, consultaMensajes de eventos que envía Generador de imágenes.

Reacciona a los eventos que envía Image Builder

Image Builder publica los eventos en el bus de eventos predeterminado cuando los recursos llegan a puntos importantes; por ejemplo, cuando una imagen cambia de estado, se completa un escaneo, un paso del flujo de trabajo se detiene para introducir datos o una canalización se desactiva automáticamente. Puede hacer coincidir estos eventos con una regla y dirigirlos a un objetivo para iniciar su propia automatización. Los patrones comunes incluyen lo siguiente:

  • Notifique a un equipo a través de un tema de Amazon SNS cuando una imagen se convierta en AVAILABLE oFAILED.

  • Invoque una función de Lambda para registrar una nueva AMI en un almacén de parámetros, iniciar pruebas de conformidad externas o actualizar un proceso de implementación.

  • Alerte sobre los resultados de seguridad cuando un escaneo detecte que hay CVE críticos.

  • Impulse un flujo de trabajo de aprobación cuando un paso WaitForAction del flujo de trabajo interrumpa una compilación.

Para actuar sobre un evento que envía Image Builder, cree una regla cuyo patrón de eventos coincida con el evento source (aws.imagebuilder) ydetail-type, si lo desea, reduzca los campos que contiene. detail A continuación, añada el objetivo que ejecuta la automatización.

Ejemplo: Notificar cuando se complete la imagen (AVAILABLEoFAILED)

{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder Image State Change"], "detail": { "state": { "status": ["AVAILABLE", "FAILED"] } } }

Ejemplo: solo se emite una alerta cuando un escaneo detecta imágenes CVE críticas

Utilice un comparador numérico para que los escaneos limpios no activen la regla:

{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder CVE Detected"], "detail": { "finding-severity-counts": { "critical": [{ "numeric": [">", 0] }] } } }
Consola de administración de AWS
  1. Abre la EventBridge consola de Amazon en. https://console.aws.amazon.com/events/

  2. Selecciona Reglas y, a continuación, Crear regla. Mantén el bus de eventos predeterminado.

  3. Introduzca un nombre y una descripción. En Tipo de regla, elija Regla con un patrón de evento.

  4. Para el origen del evento, elija Otro y pegue uno de los patrones de eventos de arriba en el cuadro Patrón de eventos.

  5. Elija su objetivo (por ejemplo, un tema de Amazon SNS o una función de Lambda) y complete la configuración del objetivo.

  6. Seleccione Creación de regla.

AWS CLI

Cree la regla y envíe los eventos coincidentes a un tema de Amazon SNS:

aws events put-rule \ --name image-available-or-failed \ --event-pattern '{"source":["aws.imagebuilder"],"detail-type":["EC2 Image Builder Image State Change"],"detail":{"state":{"status":["AVAILABLE","FAILED"]}}}' aws events put-targets \ --rule image-available-or-failed \ --targets '[{"Id":"1","Arn":"arn:aws:sns:us-west-2:111122223333:image-status"}]'

EventBridge también necesita permiso para enviar eventos a su destinatario. Para obtener más información sobre los permisos que requiere cada tipo de destino, consulte Permisos para enviar eventos a destinos y Uso de políticas basadas en recursos para Amazon EventBridge en la Guía del EventBridge usuario de Amazon.

nota

Cuando coincidas con el EC2 Image Builder Workflow Step Waiting evento, tu destinatario puede llamar SendWorkflowStepAction con la letra workflow-step-execution-id del evento y una action de RESUME o. STOP Consulte WaitForAction.