Tutorial: Registro del estado de un grupo de Auto Scaling con EventBridge - Amazon EventBridge

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.

Tutorial: Registro del estado de un grupo de Auto Scaling con EventBridge

Puede ejecutar una función de AWS Lambda que registre un evento siempre que un grupo de Auto Scaling lance o termine una instancia de Amazon EC2 que indique si el evento se realizó correctamente.

Para obtener información sobre escenarios adicionales en los que se utilizan eventos de Amazon EC2 Auto Scaling, consulte Uso de EventBridge para gestionar eventos de Auto Scaling en la Guía del usuario de Amazon EC2 Auto Scaling.

En este tutorial, se crea una función de Lambda y una regla en la consola de EventBridge que llama a esa función cuando un grupo de Amazon EC2 Auto Scaling lanza o termina una instancia.

Requisitos previos

Para completar este tutorial necesitará los siguientes recursos:

Paso 1: Crear una función Lambda

Cree una función Lambda para registrar los eventos de escalado ascendente y descendente para su grupo de Auto Scaling.

Para crear una función Lambda
  1. Abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/.

  2. Elija Create function (Crear función).

  3. Elija Author from scratch (Crear desde cero).

  4. Escriba el nombre de la función de Lambda.. Por ejemplo, asigne un nombre a la función LogAutoScalingEvent.

  5. Deje el resto de las opciones como predeterminadas y elija Crear función.

  6. En la pestaña Código de la página de funciones, haga doble clic en index.js.

  7. Sustituya el código existente por el código siguiente.

    'use strict'; exports.handler = (event, context, callback) => { console.log('LogAutoScalingEvent'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
  8. Elija Deploy (Implementar).

Paso 2: Crear una regla

Cree una regla para ejecutar la función de Lambda que creó en el paso 1. La regla se ejecuta cuando el grupo de Auto Scaling inicia o detiene una instancia.

Para crear una regla
  1. Abra la consola de Amazon EventBridge en https://console.aws.amazon.com/events/.

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

  3. Elija Create rule.

  4. Escriba un nombre y una descripción de la regla. Por ejemplo, llame a la regla TestRule

  5. En Event bus (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 su cuenta emite un evento, siempre va al bus de eventos predeterminado de su cuenta.

  6. En Rule type (Tipo de regla), elija Rule with an event pattern (Regla con un patrón de evento).

  7. Elija Next (Siguiente).

  8. En Event source (Origen del evento), elija AWS services (Servicios de ).

  9. En Event pattern (Patrón de evento), realice una de las siguientes acciones:

    1. En Origen del evento, seleccione Auto Scaling en la lista desplegable.

    2. En Tipo de evento, seleccione Lanzamiento y finalización de la instancia en la lista desplegable.

    3. Elija Cualquier evento de instancia y Cualquier nombre de grupo.

  10. Elija Next (Siguiente).

  11. En Target types (Tipos de destino), elija AWS service.

  12. En Seleccionar un destino, elija Función de Lambda en la lista desplegable.

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

  14. Elija Next (Siguiente).

  15. Elija Next (Siguiente).

  16. Revise los detalles de la regla y elija Create rule (Crear regla).

Paso 3: Probar la regla

Puede probar la regla manualmente escalando un grupo de Auto Scaling para que lance una instancia. Espere unos minutos a que se produzca el evento de escalado ascendente y, a continuación, verifique que la función de Lambda se ha invocado.

Para probar la regla con un grupo de Auto Scaling
  1. Para aumentar el tamaño de su grupo de Auto Scaling, haga lo siguiente:

    1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

    2. En el panel de navegación, seleccione Auto Scaling, Auto Scaling Groups (Grupos de Auto Scaling).

    3. Seleccione la casilla del grupo de Auto Scaling correspondiente.

    4. En la pestaña Details, seleccione Edit. En Desired, aumente la capacidad deseada en 1. Por ejemplo, si el valor actual es 2, introduzca 3. La capacidad deseada debe ser menor o igual que el tamaño máximo del grupo. Si el nuevo valor de Desired es mayor que Max, debe actualizar Max. Cuando haya terminado, elija Save.

  2. Para ver la salida de la función de Lambda, haga lo siguiente:

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

    2. En el panel de navegación, elija Logs.

    3. Seleccione el nombre del grupo de registros para la función Lambda (/aws/lambda/function-name).

    4. Seleccione el nombre del flujo de registro para ver los datos proporcionados por la función para la instancia que ha lanzado.

  3. (Opcional) Cuando haya terminado, puede reducir la capacidad deseada en uno para que el grupo de Auto Scaling vuelva a su tamaño anterior.

Paso 4: 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 5: 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
  1. Abra la página Reglas en la consola de EventBridge.

  2. Seleccione las reglas que creó.

  3. Elija Eliminar.

  4. Elija Eliminar.

Para eliminar las funciones de Lambda
  1. Abra la página de Functions (Funciones) en la consola de Lambda.

  2. Seleccione las funciones que creó.

  3. Elija Actions (Acciones), Delete (Eliminar).

  4. Elija Eliminar.