Cómo crear un evento en AWS Cloudwatch para activar una función Lambda

Cómo crear un evento en AWS Cloudwatch para activar una función Lambda

Amazon CloudWatch Events describe los cambios en los recursos de AWS. Podemos hacer coincidir eventos y enrutarlos a una o más funciones de destino. Los eventos de CloudWatch se enteran de los cambios operativos a medida que ocurren, por ejemplo, si se ha creado un recurso definido en la regla de Cloudwatch, la regla se enterará y, a cambio, activará una función de destino.

Antes de continuar y crear una regla de evento, comprendamos los conceptos básicos.

  1. Eventos:
    Un evento significa que hay un cambio en el entorno de AWS.
  2. Normas:
    Las reglas se utilizan para coincidir con el evento. Aquí se comparan y verifican los eventos.
  3. Objetivos:
    Aquí se procesan los eventos. Los destinos pueden incluir instancias de Amazon EC2, funciones de AWS Lambda, secuencias de Kinesis, tareas de Amazon ECS, máquinas de estado de Step Functions, temas de Amazon SNS, colas de Amazon SQS y destinos integrados.

En este artículo, crearemos una regla de evento que verificará el evento de cambio de estado de EC2 y activará una función lambda. Si no conoce la función Lambda, haga clic aquí para crear una para usted. Lo que haga Lambda puede ser su elección, pero en este documento tengo un Lambda que elimina los volúmenes de EBS no utilizados. He mencionado el código Lambda en este artículo. También puede usar su propia función Lambda.

requisitos previos

  1. Cuenta AWS (Crear si no tienes uno).
  2. Función lambda.

¿Que haremos?

  1. Inicie sesión en AWS.
  2. Cree una regla de eventos de Cloudwatch para activar una función Lambda.

Iniciar sesión en AWS

Hacer clic aquí para ir a la página de inicio de sesión de AWS.

Cuando hagamos clic en el enlace anterior, veremos una página web como la siguiente donde debemos iniciar sesión con nuestros datos de inicio de sesión.

Una vez que inicie sesión con éxito en su cuenta, verá la siguiente pantalla.

Cree un evento de Cloudwatch para activar una función Lambda

Para crear una regla de eventos de Cloudwatch, busque cloudwatch y haga clic en el resultado para ir al panel de control de Cloudwatch.

En el panel de control de Cloudwatch, haga clic en Reglas en Eventos en el panel izquierdo.

Aquí, haga clic en «Crear regla» para crear su primera regla para activar una función Lambda en su región.

Seleccione el botón de opción «Patrón de evento», en Nombre del servicio, seleccione «EC2», seleccione «Notificación de cambio de estado de instancia EC2» para Tipo de evento.

Haga clic en Agregar destinos para agregar una función Lambda existente como destino y haga clic en «Configurar detalles».

Haga clic aquí para aprender a crear una función Lambda para usted. Encuentre el siguiente código Lambda de referencia para usted.

Código lambda: Use este código para crear una función Lambda si no tiene 1 en su cuenta.

import boto3
ec2 = boto3.resource('ec2',region_name='eu-west-3')
 
def lambda_handler(event, context):
    for vol in ec2.volumes.all():
        if  vol.state=='available':
            if vol.tags is None:
                vid=vol.id
                v=ec2.Volume(vol.id)
                v.delete()
                print ('EBS Volume Deleted ' +vid)
                continue
            for tag in vol.tags:
                if tag['Key'] == 'Name':
                    value=tag['Value']
                    if value != 'DoNNotDel' and vol.state=='available':
                        vid=vol.id
                        v=ec2.Volume(vol.id)
                        v.delete()
                        print ('EBS Volume Deleted ' +vid)

Dale un nombre al evento junto con la descripción y haz clic en «Crear regla».

Esto creará una regla de evento que activará una función Lambda de destino cada vez que haya un cambio en el estado de las instancias EC2.

Conclusión

En este artículo, vimos cómo crear una regla de evento de Cloudwatch que indica el cambio en el estado de la instancia EC2 y activa la función Lambda cuando la regla coincide con el evento. Puede seleccionar el objetivo de su elección.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *