Podría haber jurado que había una manera fácil de cambiar el tamaño del lote de una cola SQS que está configurada como disparador de Lambda, pero a partir de julio de 2020 ya no puedo encontrar dónde sucede esto. Esto puede tener algo que ver con la "nueva experiencia de la consola SQS" que actualmente se anuncia en la parte superior de AWS.
Puedo ver el tamaño de lote actual para mi cola (captura de pantalla), pero el número no se puede editar. Tampoco veo nada relacionado con el tamaño del lote en la interfaz de SQS. Es posible que mi credencial de IAM actual no tenga la capacidad de cambiar el tamaño de los lotes y esté oculta para mí. ¿Alguien sabe dónde se puede cambiar este valor?
Esta limitación no estaría relacionada con la consola de Amazon SQS .
Estaría relacionado con AWS Lambda , ya que el servicio de Lambda se encarga de sondear la cola de SQS y de especificar el tamaño del lote a recuperar.
Tiene razón en que no hay una función para editar el tamaño del lote en la consola de 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 8Producció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.
SQS no es una excepción. Lo mismo ocurre con los flujos de DynamoDB y Kinesis . Creo que la razón es que los tres servicios funcionan con lambda a través de asignaciones de fuentes de eventos . Nada más está usando las asignaciones.
Sin embargo, tampoco es posible actualizar event source mappings a través de la consola. Puede usar CLI o SDK para eso, pero esto también requiere obtener UUID de la asignación para modificar. Lamentablemente, el UUID tampoco se proporciona en la consola .
Para usar en CLI, debe hacerlo en dos pasos .
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 | +---------------------------------------+-------------------------------------------------------------------------------------+ 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" }No estoy seguro de antes, pero la interfaz de usuario lambda ahora le permite configurar el tamaño del lote.
Advertencia: debe crear manualmente el activador desde la interfaz de usuario de lamdba y no desde la interfaz de usuario de SQS.
Pasos como se describe en el documento