Зарезервированный параллелизм AWS Lambda по сравнению с выделенным параллелизмом - Kaif

Зарезервированный параллелизм AWS Lambda по сравнению с выделенным параллелизмом

Во время подготовки к Сертифицированный разработчик AWS — сотрудник на сертификационном экзамене вы можете столкнуться с вопросами, связанными с Lambda, в практических тестах, которые имеют как зарезервированный параллелизм, так и подготовленный параллелизм в качестве вариантов. Для экзамена важно уметь различать их, чтобы исключить тот, который отвлекает внимание. К сожалению, описания AWS сбивают с толку, из-за чего трудно запомнить, что есть что.

Вот как документация AWS описывает зарезервированный параллелизм:

Зарезервированный параллелизм гарантирует максимальное количество одновременных экземпляров функции. Когда функция зарезервировала параллелизм, никакая другая функция не может использовать этот параллелизм.

И вот как документация AWS описывает подготовленный параллелизм:

Предоставленный параллелизм инициализирует запрошенное количество сред выполнения, чтобы они были готовы немедленно реагировать на вызовы вашей функции.

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

Зарезервированный параллелизм

Чтобы лучше понять, что такое зарезервированный параллелизм, представьте себе вечеринку по случаю дня рождения ребенка. На вечеринку приходят двадцать детей, а у вас сорок мини-кексов. Если вы поместите все сорок мини-кексов на большую тарелку, чтобы дети могли угоститься сами, некоторым может понадобиться 4 или 5, а у других детей вообще не останется ни одного. Чтобы не разочаровать детей, вы откладываете или резервируете по два кекса на ребенка.

Сравните это с описанием Lambda Reserved Concurrency в AWS:

Зарезервированный параллелизм гарантирует максимальное количество одновременных экземпляров функции.

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

Почему резервирование параллелизма может быть необходимо?

Это может быть необходимо из-за ограничений или квот сервисов AWS.* По умолчанию Lambda имеет лимит параллелизма 1000 для всех функций в каждом регионе в каждой учетной записи. Если у вас есть десять функций Lambda, работающих в регионе US-East-1, все десять должны использовать этот лимит параллелизма по умолчанию, равный 1000. Используя зарезервированный параллелизм, вы можете определить, сколько одновременных экземпляров может иметь каждая функция Lambda. Согласно AWS, «за настройку зарезервированного параллелизма для функции плата не взимается».”

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

Вы можете зарезервировать параллелизм для функций AWS Lambda.
Вы можете зарезервировать параллелизм для функций AWS Lambda.АМС

Предоставленный параллелизм

Чтобы лучше понять подготовленный параллелизм, представьте себе работу ресторана, предлагающего доставку еды. Каждый день с 14:00 до 16:00 — период затишья для вашего бизнеса. Вы получаете только несколько заказов в месяц между этими часами, поэтому вы не планируете никаких курьеров. В тех редких случаях, когда вы получаете заказ, вам нужно позвонить одному из ваших сотрудников службы доставки, чтобы он пришел на работу и сделал доставку. Эти заказы еды занимают намного больше времени, чем обычно, что приводит к жалобам клиентов. Чтобы ваши клиенты были довольны, вы решаете, что курьер будет дежурить с 14:00 до 16:00, хотя обычно им нечего делать. Таким образом, если между 14:00 и 16:00 поступит редкий заказ, они будут готовы к работе.

Давайте еще раз взглянем на описание подготовленного параллелизма в AWS:

Предоставленный параллелизм инициализирует запрошенное количество сред выполнения, чтобы они были готовы немедленно реагировать на вызовы вашей функции.

Точно так же, как доставщик еды всегда готов ответить немедленно, функция Lambda всегда доступна для немедленного ответа. Поскольку подготовленный параллелизм выполняется непрерывно, за его использование взимается плата.

Почему может быть необходим подготовленный параллелизм?

Если лямбда-функция какое-то время не использовалась или была обновлена, создаются новые среды выполнения. Выполнение функции Lambda включает в себя такие шаги, как установка кода функции и запуск среды выполнения. Поскольку инициализация может занять некоторое время, может возникнуть некоторая задержка. Эту задержку часто называют холодный запуск. Чтобы избежать холодный запуск, вы можете обеспечить параллелизм, чтобы функции оставались инициализированными. Согласно AWS, обеспеченный параллелизм «сохраняет функции инициализированными и готовыми к ответу за двузначные миллисекунды».”

Вам выставляется счет за использование подготовленного параллелизма AWS Lambda.
Вам выставляется счет за использование подготовленного параллелизма AWS Lambda.

Добавить комментарий