Как обеспечить, чтобы каждая очередь SQS могла иметь различные значения для своего лимита параллелизма? - PullRequest
0 голосов
/ 04 июня 2019

каждая очередь SQS представляет собой «задание» клиента.Так что установка лямбда-ограничения на параллелизм в 5 не имеет смысла, так как будет много клиентов, создающих много очередей SQS или «заданий» для обработки максимум 5 лямбда-функциями одновременно.

однако некоторые клиенты, которые платят больше денег, захотят увеличить это, скажем, до 20 лямбда-функций.как программно измерить максимальный предел лямбда-очереди каждой очереди SQS?

идея заключается в том, что в то время как лямбда-функция запускается из источника события очереди SQS.Как мне убедиться, что максимум 5 лямбда-функций будут работать на полную мощность для одной группы пользователей и 20 для другой группы?поэтому, пока очередь заполняется, максимальное количество одновременных обрабатываемых сообщений должно составлять 5.

Как мне обеспечить это программно через boto3?

 import boto3
 lada = boto3.client('lambda')
 response=lada.create_event_source_mapping(
                EventSourceArn='jobSpecificQueueArn',
                FunctionName='myLambdaFunction',
                Enabled=True,
                BatchSize=1
 )

Кроме того, как установить уникальный лимит лямбда-параллелизма для очереди?

попытка решения: единственная идея, которую я имею, - это создать несколько разных ограничений на лямбда-параллелизм путем клонирования одной и той же лямбда-функции.Тогда, если клиент хочет наложить ограничение «14 лямбда-параллелизма» на данную очередь, я бы просто create_event_sourcing() с lambda-function-hard-limit-at-14.Если пользователь хочет уменьшить масштаб, я бы update_event_sourcing() с lambda-function-hard-limit-at-3.

С другой стороны, я буду создавать дублирующие лямбда-функции вручную ... примерно в 20 раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...