#amazon-web-services #aws-lambda #amazon-sqs #aws-lambda-containers
Вопрос:
Вот моя лямбда-функция:
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
как 1
.
1 предположение, которое я делаю, состоит в том, что нерест одного лямбда-контейнера определяется его конкретным НАЧАЛОМ и КОНЦОМ requestId
. Если есть 5 таких НАЧАЛЬНЫХ и КОНЕЧНЫХ requestId
, это означает, что было создано 5 уникальных контейнеров.
Теперь означает ли это, что в НАЧАЛЕ и в КОНЦЕ requestId
обрабатывается именно 1
сообщение, и для следующего сообщения создается новый контейнер с новым НАЧАЛОМ и КОНЦОМ requestId
, ДАЖЕ если у предыдущего контейнера было достаточно памяти и времени для выполнения большего количества запросов?
Ответ №1:
Поскольку вы указали размер пакета 1, то запрос будет содержать одно сообщение SQS. Таким образом, «между НАЧАЛЬНЫМ и КОНЕЧНЫМ запросом» будет журналом для одного сообщения, обрабатываемого Лямбда.
Однако тот же контейнер может быть вызван снова с другим запросом после его завершения. Контейнеры в AWS Lambda можно использовать повторно. Они не используются для более чем одного запроса одновременно, но их можно использовать для многих последовательных запросов.
Ограничение по времени для функции AWS Lambda-это время, необходимое для обработки одного запроса. Поэтому, если контейнер используется повторно, ограничение по времени начинается с каждого запроса.
Один лямбда-контейнер может работать в течение нескольких часов/дней/месяцев и т. Д., Если он сильно загружен или если у вас предусмотрен параллелизм. У него просто есть максимум 15 минут (или меньше, в зависимости от конфигурации) для обработки одного запроса.
Это официально задокументировано здесь, в разделе «Жизненный цикл среды выполнения Lambda».