Tutorial: Crear una regla de EventBridge que reaccione a las llamadas a la API de AWS a través de CloudTrail
Puede utilizar reglas de Amazon EventBridge para reaccionar a las llamadas a la API realizadas por un servicio de AWS registradas por AWS CloudTrail.
En este tutorial, creará un registro de seguimiento de AWS CloudTrail, una función de Lambda y una regla en la consola de EventBridge. La regla invoca la función de Lambda cuando se detiene una instancia de Amazon EC2.
Pasos:
Paso 1: Crear un registro de seguimiento de AWS CloudTrail
Si ya tiene configurado un registro de seguimiento, vaya al paso 2.
Para crear un registro de seguimiento
Abra la consola de CloudTrail en https://console.aws.amazon.com/cloudtrail/
. -
Elija Trails (Registros de seguimiento), Create trail (Crear un registro de seguimiento).
-
En Trail name, escriba un nombre para el registro de seguimiento.
-
En Ubicación de almacenamiento, en Crear un bucket de S3 nuevo.
-
En alias de AWS KMS, escriba el alias para la clave KMS.
-
Elija Siguiente.
-
Elija Siguiente.
-
Elija Create Trail (Crear registro de seguimiento).
Paso 2: Crear una función de AWS Lambda
Cree una función de Lambda para registrar los eventos de llamada a la API.
Para crear una función de Lambda
Abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/
. -
Elija Crear función.
-
Elija Crear desde cero.
-
Introduzca un nombre y la descripción de la función de Lambda. Por ejemplo, asigne un nombre a la función
LogEC2StopInstance. -
Deje el resto de las opciones como predeterminadas y elija Crear función.
-
En la pestaña Código de la página de funciones, haga doble clic en index.js.
-
Sustituya el código existente por el código siguiente.
'use strict'; exports.handler = (event, context, callback) => { console.log('LogEC2StopInstance'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); }; -
Elija Implementar.
Paso 3: Crear una regla
Cree una regla para ejecutar su función de Lambda que creó en el paso 2 siempre que detenga una instancia de Amazon EC2.
Para crear una regla
Abra la consola de Amazon EventBridge en https://console.aws.amazon.com/events/
. -
En el panel de navegación, seleccione Reglas.
-
Elija Creación de regla.
-
Escriba un nombre y una descripción para la regla. Por ejemplo, llame a la regla
TestRule -
En Bus de eventos, elija el bus de eventos que desea asociar a esta regla. Si desea que esta regla coincida con eventos procedentes de su cuenta, seleccione predeterminado. Cuando un servicio de AWS en la cuenta emite un evento, siempre va al bus de eventos predeterminado de la cuenta.
-
En Tipo de regla, seleccione Regla con un patrón de eventos.
-
Seleccione Siguiente.
-
En Origen de evento, seleccione Servicios de AWS.
-
En Event pattern (Patrón de evento), realice una de las siguientes acciones:
-
En Origen del evento, seleccione EC2 en la lista desplegable.
-
En Tipo de evento, seleccione Llamada a la API de AWSmediante CloudTrail en la lista desplegable.
-
Elija Operaciones específicas y escriba
StopInstances.
-
-
Elija Siguiente.
-
En Tipos de destino, seleccione Servicio de AWS.
-
En Seleccionar un destino, elija Función de Lambda en la lista desplegable.
-
En Función, seleccione la función de Lambda que creó en la sección Paso 1: Crear una función de Lambda. En este ejemplo, seleccione
LogEC2StopInstance. -
Elija Siguiente.
-
Elija Siguiente.
-
Revise los detalles de la regla y seleccione Creación de regla.
Paso 4: Probar la regla
Puede probar la regla parando una instancia de Amazon EC2 mediante la consola de Amazon EC2. Espere unos minutos a que la instancia se pare, compruebe las métricas de AWS Lambda en la consola de CloudWatch para comprobar que la función se invocó.
Para probar la regla parando una instancia
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
Lance una instancia. Para obtener más información, consulte Lanzar la instancia en la Guía del usuario de Amazon EC2.
-
Detenga la instancia. Para obtener más información, consulte Detener e iniciar la instancia en la Guía del usuario de Amazon EC2.
-
Para ver la salida de la función de Lambda, haga lo siguiente:
Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/
. -
En el panel de navegación, elija Logs.
-
Seleccione el nombre del grupo de registros para la función de Lambda (
/aws/lambda/).function-name -
Seleccione el nombre del flujo de registro para ver los datos proporcionados por la función para la instancia que ha detenido.
-
(Opcional) Cuando haya finalizado, termine la instancia detenida. Para obtener más información, consulte Finalizar una instancia en la Guía del usuario de Amazon EC2.
Paso 5: Confirmar el éxito
Si ve el evento de Lambda en los registros de CloudWatch, significa que ha completado correctamente este tutorial. Si el evento no está en sus registros de CloudWatch, comience a solucionar problemas verificando que la regla se haya creado correctamente y, si la regla parece correcta, compruebe que el código de la función de Lambda sea correcto.
Paso 6: Eliminar los recursos
A menos que desee conservar los recursos que creó para este tutorial, puede eliminarlos ahora. Si elimina los recursos de AWS que ya no utiliza, evitará gastos innecesarios en su cuenta de AWS.
Para eliminar las reglas de EventBridge
-
Abra la página Reglas
en la consola de EventBridge. -
Seleccione las reglas que creó.
-
Elija Eliminar.
-
Elija Eliminar.
Para eliminar las funciones de Lambda
-
Abra la página de Funciones
en la consola de Lambda. -
Seleccione las funciones que creó.
-
Elija Actions (Acciones), Delete (Eliminar).
-
Elija Eliminar.
Para eliminar los registros de seguimiento de CloudTrail
-
Abra la página Trails (Registros de seguimiento)
de la consola de CloudTrail. -
Seleccione los registros de seguimiento que creó.
-
Elija Eliminar.
-
Elija Eliminar.