Creación de una regla que se desencadena en función de un evento Amazon Aurora - Amazon Aurora

Creación de una regla que se desencadena en función de un evento Amazon Aurora

Al utilizar Amazon EventBridge, puede automatizar los servicios de AWS y responder a eventos del sistema, como problemas de disponibilidad de aplicaciones o cambios de recursos.

Tutorial: Registrar el estado de una instancia de base de datos con Amazon EventBridge

En este tutorial puede crear una función de AWS Lambda que registre los cambios de estado de una instancia de . A continuación, puede crea una regla que ejecute la función cuando se produzca un cambio de estado de una instancia de base de datos de RDS existente. En el tutorial se asume que tiene una pequeña instancia de prueba en ejecución que puede apagar temporalmente.

importante

No realice este tutorial en una instancia de base de datos de producción en ejecución.

Paso 1: Crear una función de AWS Lambda

Cree una función Lambda para registrar los eventos de cambio de estado. Especifique esta función cuando cree la regla.

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

  2. Si es la primera vez que utiliza Lambda, aparecerá una página de bienvenida. Seleccione Get Started Now. De lo contrario, seleccione Create function (Crear función).

  3. Elija Author from scratch.

  4. En la página Create function (Crear función), proceda del modo siguiente:

    1. Introduzca un nombre y la descripción de la función Lambda. Por ejemplo, asigne un nombre a la función RDSInstanceStateChange.

    2. En Runtime (Tiempo de ejecución), seleccione Node.js 14x.

    3. En Architecture (Arquitectura), elija x86_64.

    4. En Execution role (Rol de ejecución), haga una de estas dos operaciones:

      • Elija Create a new role with basic Lambda permissions (Crear un nuevo rol con permisos básicos de Lambda).

      • En Existing role (Rol existente), elija Use an existing role (Usar un rol existente). Elija el rol que desee usar.

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

  5. En la página RDSInstanceStateChange, haga lo siguiente:

    1. En Code source (Fuente del código), seleccione index.js.

    2. En el panel deindex.js, elimine el código existente.

    3. Escriba el código siguiente:

      console.log('Loading function'); exports.handler = async (event, context) => { console.log('Received event:', JSON.stringify(event)); };
    4. Elija Deploy (Implementar).

Paso 2: Crear una regla

Cree una regla para ejecutar su función Lambda siempre que lance una instancia Amazon RDS.

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

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

  3. Elija Crear regla.

  4. Escriba un nombre y una descripción de la regla. Por ejemplo, escriba RDSInstanceStateChangeRule.

  5. Elija Rule with an event pattern (Regla con un patrón de evento) y, a continuación, elija Next (Siguiente).

  6. En Origen del evento, elija Eventos o eventos de socios de EventBridge de AWS.

  7. Desplácese hacia abajo en la sección Event pattern (Patrón de eventos).

  8. En Origen del evento, elija Servicios de AWS.

  9. En AWS service (Servicio de ), elija Relational Database Service (RDS).

  10. Para Event type (Tipo de evento), elija RDS DB Instance Event (Evento de instancia de base de datos RDS).

  11. Deje el patrón de eventos predeterminado. A continuación, elija Next.

  12. En Tipos de destino, seleccione Servicio de AWS.

  13. En Select a target (Seleccione destino), elija Lambda function (Función de Lambda).

  14. En Function (Función), seleccione la función Lambda que ha creado. A continuación, elija Next.

  15. En Configure tags (Configurar etiquetas), elija Next (Siguiente).

  16. Revise los pasos de la regla. A continuación, elija Create rule (Crear regla).

Paso 3: Probar la regla

Para probar su regla, cierre una instancia de base de datos de RDS. Después de esperar unos minutos a que la instancia se detenga, compruebe que se haya invocado la función Lambda.

Para probar la regla mediante la detención de una instancia de base de datos
  1. Abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. Detenga una instancia de base de datos de RDS.

  3. Abra la consola de Amazon EventBridge en https://console.aws.amazon.com/events/.

  4. En el panel de navegación, elija Rules (Reglas) y elija el nombre de la regla que ha creado.

  5. En Detalles de la regla, seleccione Monitoreo.

    Se lo redirigirá a la consola de Amazon CloudWatch. Si no se le redirige, haga clic en Ver métricas en CloudWatch.

  6. En All metrics (Todas las métricas), elija el nombre de la regla que creó.

    El gráfico debe indicar que se ha invocado la regla.

  7. En el panel de navegación, seleccione Log groups (Grupos de registro).

  8. Seleccione el nombre del grupo de registro de su función de Lambda (/aws/lambda/function-name).

  9. Elija el nombre del flujo de registro para ver los datos proporcionados por la función para la instancia que ha lanzado. Debería recibir un resultado similar al siguiente:

    { "version": "0", "id": "12a345b6-78c9-01d2-34e5-123f4ghi5j6k", "detail-type": "RDS DB Instance Event", "source": "aws.rds", "account": "111111111111", "time": "2021-03-19T19:34:09Z", "region": "us-east-1", "resources": [ "arn:aws:rds:us-east-1:111111111111:db:testdb" ], "detail": { "EventCategories": [ "notification" ], "SourceType": "DB_INSTANCE", "SourceArn": "arn:aws:rds:us-east-1:111111111111:db:testdb", "Date": "2021-03-19T19:34:09.293Z", "Message": "DB instance stopped", "SourceIdentifier": "testdb", "EventID": "RDS-EVENT-0087" } }

    Para ver más ejemplos de eventos de RDS en formato JSON, consulte Información general de los eventos para Aurora.

  10. (Opcional) Cuando haya terminado, puede abrir la consola de Amazon RDS y comenzar la instancia que ha lanzado.