Лямбда - Событие SQS: размер пакета, количество порожденных и завершенных контейнеров

Вот моя лямбда-функция:

      LambdaFunction:
  Type: AWS::Serverless::Function
  Properties:
    Description: Lambda Function that is spawned via an SQSEvent
    FunctionName: LambdaFunctionName
    Handler: 'com.amazon.krakenscreenruleengineservicelambda.handler.RulesSubscriptionConsumerHandler::handleRequest'
    Runtime: java8
    Events:
      SubscriptionEvent:
        Type: SQS
        Properties:
          Queue:
            Fn::GetAtt: [SubscriptionQueue, Arn]
          BatchSize: 1
    Timeout: 890
    MemorySize: 1024

Я установил BatchSize в качестве .

Одно предположение, которое я делаю, заключается в том, что порождение одного контейнера Lambda определяется его конкретными START и END . Если таких START и END 5 , это означает, что было создано 5 уникальных контейнеров.

Означает ли это, что в пределах START и END точно 1 сообщение обрабатывается, и для следующего сообщения создается новый контейнер с новыми START и END requestId ДАЖЕ, если у предыдущего контейнера была память и время для выполнения большего количества запросов?

1 ответ

Поскольку вы указали размер пакета 1, запрос будет включать одно сообщение SQS. Таким образом, «между START и END requestId» будет журнал для одного сообщения, обрабатываемого Lambda.

Однако тот же контейнер может быть вызван снова с другим запросом после его завершения. Контейнеры в AWS Lambda можно использовать повторно . Они не используются более чем для одного запроса одновременно, но их можно использовать для множества последовательных запросов.

Ограничение по времени для функции AWS Lambda - это время, необходимое для обработки одного запроса. Поэтому, если контейнер используется повторно, ограничение по времени начинается с каждого запроса.

Один контейнер Lambda может работать часы / дни / месяцы и т. Д., Если он сильно загружен или если вы подготовили параллелизм. У него просто максимум 15 минут (или меньше, в зависимости от конфигурации) для обработки одного запроса.


Это официально задокументировано здесь , в разделе «Жизненный цикл среды выполнения Lambda».

Другие вопросы по тегам