Saltar al contenido

¿Dónde puede cambiar el tamaño de lote de una cola SQS que activa una función de AWS Lambda?

Solución:

SQS no es una excepción. los Lo mismo ocurre con las transmisiones de DynamoDB y Kinesis.. Creo que la razón es que los tres los servicios funcionan con lambda a través de asignaciones de fuentes de eventos. Nada más está usando las asignaciones.

Sin embargo, actualizar event source mappings a través de la consola tampoco es posible. Puede usar CLI o SDK para eso, pero esto también requiere obtener UUID del mapeo a modificar. Desafortunadamente UUID no se proporciona en la consola cualquiera.

Para usar en CLI, debe hacerlo en dos pasos.

1 Obtener UUID

aws lambda list-event-source-mappings --query 'EventSourceMappings[].[UUID, EventSourceArn]' --output table
-------------------------------------------------------------------------------------------------------------------------------
|                                                   ListEventSourceMappings                                                   |
+---------------------------------------+-------------------------------------------------------------------------------------+
|  5ab44863-82c2-4acc-b9dc-b14ad368effa |  arn:aws:kinesis:us-east-1:xxxxx:stream/kstream                              |
|  7479947c-bde5-4041-a438-5eb08f350505 |  arn:aws:dynamodb:us-east-1:xxxx:table/test/stream/2020-07-28T23:13:41.006  |
|  40040139-32fb-4297-b094-3f08368c980c |  arn:aws:sqs:us-east-1:xxxxx:Messages                                        |
|  a2b22aa6-f37a-4603-895b-3a044661ebdf |  arn:aws:sqs:us-east-1:xxx:test-queue                                      |
+---------------------------------------+-------------------------------------------------------------------------------------+

2. Actualice el mapeo (por ejemplo, para SQS)

aws lambda update-event-source-mapping --uuid a2b22aa6-f37a-4603-895b-3a044661ebdf --batch-size 5
{
    "UUID": "a2b22aa6-f37a-4603-895b-3a044661ebdf",
    "BatchSize": 5,
    "EventSourceArn": "arn:aws:sqs:us-east-1:xxx:test-queue",
    "FunctionArn": "arn:aws:lambda:us-east-1:xxxx:function:testsfd",
    "LastModified": 1595978738.458,
    "State": "Updating",
    "StateTransitionReason": "USER_INITIATED"
}

Esta limitación no estaría relacionado con Amazon SQS consola.

Podría ser relacionado con AWS Lambda, ya que el servicio Lambda es responsable de sondear la cola SQS y de especificar el tamaño del lote a recuperar.

Tiene razón en que no hay ninguna función para editar el tamaño del lote en la consola Lambda.

Desde update-event-source-mapping – AWS CLI Command Reference, aquí hay un comando de AWS CLI que puede actualizar el tamaño del lote:

aws lambda update-event-source-mapping 
    --uuid  "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" 
    --batch-size 8

Producción:

{
    "UUID": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
    "StateTransitionReason": "USER_INITIATED",
    "LastModified": 1569284520.333,
    "BatchSize": 8,
    "State": "Updating",
    "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
    "EventSourceArn": "arn:aws:sqs:us-west-2:123456789012:mySQSqueue"
}

O simplemente elimine el disparador en la consola de Lambda y cree uno nuevo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *