He configurado mi función de AWS Lambda para procesar los mensajes de una cola de Amazon Simple Queue Service (Amazon SQS), pero el desencadenador de SQS no está activo.
Descripción corta
Puedes utilizar una función de Lambda para procesar los mensajes de una cola de Amazon SQS. La asignación de orígenes de eventos lee desde un origen de eventos e invoca una función de Lambda.
Los sondeadores de Lambda realizan constantemente la llamada a la API ReceiveMessage a la cola de Amazon SQS. Si la llamada a la API ReceiveMessage no se completa, el recurso AWS::Lambda::EventSourceMapping está desactivado.
Resolución
Verificación de los permisos de la función de Lambda
Asegúrate de que tu rol de ejecución de funciones de Lambda tenga permisos para las acciones de la API ChangeMessageVisibility, DeleteMessage, GetQueueAttributes y ReceiveMessage.
Verificación de permisos de AWS KMS
Si la cola de Amazon SQS está configurada con el cifrado SSE-KMS de AWS Key Management Service (AWS KMS), asegúrate de que:
- La clave de AWS KMS existe.
- El rol de ejecución de la función de Lambda tiene permisos para las acciones de la API Encrypt, Decrypt y GenerateDataKey.
- Los permisos de la política de claves de AWS KMS están configurados para permitir que los eventos se envíen a las colas de Amazon SQS.
Nota: Las colas de Amazon SQS con cifrado SSE-KMS no pueden invocar una función de Lambda en una cuenta de AWS (entre cuentas).
Solución de problemas con CloudTrail
Puedes usar el historial de eventos de AWS CloudTrail para buscar eventos de datos y revisar los códigos de error para solucionar problemas.
Nota: CloudTrail está activado de forma predeterminada en tu cuenta de AWS.
Para obtener un registro continuo de los eventos en tu cuenta de AWS, crea un seguimiento. El registro crea registros de las llamadas a la API realizadas en tu cuenta.
Nota: También puedes ver el historial de eventos más reciente en la consola de CloudTrail.
Sigue estos pasos:
1. Abre la consola de CloudTrail.
2. En el panel de navegación, selecciona Historial de eventos.
3. Sigue las instrucciones para ver, mostrar y filtrar los eventos de CloudTrail según tu caso de uso.
También puedes descargar el historial de eventos registrado como un archivo en formato CSV o JSON.
Comprueba el nombre del evento de CloudTrail LambdaESMDisabled. El registro de eventos contiene el evento de datos LambdaESMDisable con más información sobre por qué el desencadenador de Amazon SQS no está activo.
Para obtener más información, consulta Uso de CloudTrail para solucionar problemas de orígenes de eventos de Lambda desactivados.
(Opcional) Creación de alarmas de CloudWatch
Puedes crear una alarma de Amazon CloudWatch para las métricas de Amazon SQS a fin de recibir notificaciones sobre la cantidad de mensajes recibidos, enviados, eliminados, etc. Por ejemplo, puedes utilizar la métrica NumberOfMessagesReceived de Amazon SQS para obtener el número de mensajes recientes devueltos. Si el recuento es 0, invoca una nueva función de Lambda para comprobar el estado del desencadenador de Amazon SQS. Si el desencadenador de Amazon SQS sigue deshabilitado, utiliza la nueva función de Lambda para activarlo.
Para obtener más información, consulta las métricas de CloudWatch disponibles para Amazon SQS.
Información relacionada
¿Cómo concedo acceso a una cola de Amazon SQS?
¿Cómo puedo solucionar los errores en la función de Lambda?