Есть ли способ программно узнать, сколько параллельных экземпляров лямбда-функции выполняется? - PullRequest
0 голосов
/ 15 ноября 2018

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

Затем есть способ узнать, сколько активных одновременных экземпляровЛямбда-функция в данный момент запущена?

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

Но мне было интересно, существует ли другой способ получить эти числа программным путем, например, используя boto3 api и т. Д .?

1 Ответ

0 голосов
/ 15 ноября 2018

Краткий ответ - нет.

Вы можете программно получить доступ к метрикам cloudwatch (см .: boto3 CloudWatch.Client.get_metric_data ), однако эти метрики отстают отминута.Хуже того, в то время как отдельные лямбды возвращают invocations, вы можете получить ConcurrentExecutions для всего своего аккаунта, а это значит, что лучшее, что вы можете сделать, - это если вы поместите лямбду в ее собственный аккаунт AWS и даже тогда вы все равно будете на минуту отставать, что, как правило, дольше, чем средняя продолжительность жизни лямбды.

Я должен отметить, однако, что лямбда через «зарезервированный параллелизм» действительно предоставляет способ, по крайней мере,элементарно, управляйте параллелизмом.Пример использования этого варианта: вызов внешней службы / базы данных с ограниченным пулом соединений.

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