Configurar una cola de Amazon SQS para desencadenar una función de AWS Lambda - Amazon Simple Queue Service

Configurar una cola de Amazon SQS para desencadenar una función de AWS Lambda

Puede utilizar una función de Lambda para procesar mensajes de una cola de Amazon SQS. Lambda sondea la cola e invoca su función de forma sincrónica, transfiriendo un lote de mensajes como un evento.

Configuración del tiempo de espera de visibilidad

Establezca el tiempo de espera de visibilidad de la cola en al menos seis veces el tiempo de espera de la función. Esto garantiza que Lambda tenga tiempo suficiente para volver a intentar realizar los procesos en caso de que la función se vea limitada debido al procesamiento de un lote anterior.

Uso de una cola de mensajes fallidos (DLQ)

Especifique una cola de mensajes fallidos para capturar los mensajes que la función de Lambda no puede procesar.

Gestión de varias colas y funciones

Una función de Lambda puede procesar varias colas mediante la creación de una fuente de eventos independiente para cada cola. También puede asociar varias funciones de Lambda a la misma cola.

Permisos para colas cifradas

Si asocia una cola cifrada a una función de Lambda pero Lambda no sondea los mensajes, agregue el permiso kms:Decrypt a su rol de ejecución de Lambda.

Restricciones

La cola y la función de Lambda deben estar en la misma Región de AWS.

Una cola cifrada que usa la clave predeterminada (clave de KMS administrada por AWS para Amazon SQS) no puede invocar una función de Lambda en otra Cuenta de AWS.

Para obtener más información sobre la implementación, consulte Uso de AWS Lambda con Amazon SQS en la Guía para desarrolladores de AWS Lambda.

Requisitos previos

Para configurar desencadenadores de funciones de Lambda, debe cumplir los siguientes requisitos:

  • Si es un usuario, su rol de Amazon SQS debe incluir los siguientes permisos:

    • lambda:CreateEventSourceMapping

    • lambda:ListEventSourceMappings

    • lambda:ListFunctions

  • El rol de ejecución de Lambda debe incluir los permisos siguientes:

    • sqs:DeleteMessage

    • sqs:GetQueueAttributes

    • sqs:ReceiveMessage

  • Si asocia una cola cifrada a una función de Lambda, agregue el permiso kms:Decrypt a la función de ejecución de Lambda.

Para obtener más información, consulte Información general sobre la administración del acceso en Amazon SQS.

Configuración de una cola para desencadenar una función de Lambda (consola)
  1. Abra la consola de Amazon SQS en https://console.aws.amazon.com/sqs/.

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

  3. En la página Colas, elija la cola que desee configurar.

  4. En la página de la cola, elija la pestaña Desencadenadores de Lambda.

  5. En la página Desencadenadores de Lambda, elija un desencadenador de Lambda.

    Si la lista no incluye el desencadenador de Lambda que necesita, elija Configurar desencadenador de función de Lambda. Introduzca el nombre de recurso de Amazon (ARN) de la función de Lambda o elija un recurso existente. A continuación, elija Guardar.

  6. Seleccione Save. La consola guarda la configuración y muestra la página Detalles de la cola.

    En la página Detalles, la pestaña Desencadenadores de Lambda muestra la función de Lambda y su estado. Se tarda aproximadamente un minuto en asociar la función de Lambda a la cola.

  7. Para verificar los resultados de la configuración, envíe un mensaje a la cola y, a continuación, consulte la función de Lambda desencadenada en la consola de Lambda.