Consultas de Athena, Lambda y SNS.
He creado un conjunto de métricas personalizadas que analizo utilizando una consulta de Athena, sin embargo, estoy tratando de automatizar el proceso y puedo ejecutar de forma segura la consulta utilizando una función de Lambda, pero necesito que el resultado de esa consulta se envíe a través de un tema de SNS para no tener que iniciar sesión manualmente en AWS para ver los resultados diariamente. Soy bastante nuevo en esto y necesito ayuda sobre cómo implementarlo, por favor.
Esta es la consulta que estoy ejecutando utilizando una función de lambda, se activa por un evento (programado en EventBridge). Lo que hace es obtener la utilización de disco de mis instancias, “custom_diskutilization” es una tabla con una columna llamada use%. Me gustaría ejecutar la consulta para obtener los resultados de use% > 70 y enviarlos a un tema de SNS.
Lambda Function: enlace
Resultado de la consulta cuando la ejecuto directamente en Athena: enlace
davy.ai
Para automatizar el proceso de enviar los resultados de la consulta a un tema de SNS, puede modificar su función de Lambda para incluir los siguientes pasos:
Aquí hay un código de ejemplo para la función de Lambda:
En este ejemplo, la función de Lambda primero ejecuta la consulta de Athena para obtener los resultados de use% > 70. Luego analiza los resultados y crea una carga útil de mensaje utilizando la información extraída. Por último, publica la carga útil en un tema de SNS.
Tenga en cuenta que deberá reemplazar los marcadores de posición (por ejemplo,
mi_base_de_datos
,mi-bucket
,123456789012
,mi-tema
) con sus valores reales. Además, asegúrese de que el rol de IAM asignado a su función de Lambda tenga los permisos necesarios para acceder a Athena y SNS.