В AWS есть предопределенные метрики, связанные с лямбда-параллелизмом, которые отображаются в AWS CloudWatch
ConcurrentExecutions : Показывает одновременные выполнения, которые происходят в этот момент во всех функциях Lambda в учетной записи, включая зарезервированные и незарезервированные.
UnreservedConcurrentExecutions : показывает общее количество одновременных выполнений, которые происходят в этот момент и которые используют Unreserved Concurrency.
Информацию, которую я искал, можно увидеть, когда мы запустим команду CLI
ConcurrentExecutions и UnreservedConcurrentExecutions
$ aws lambda get-account-settings
{
"AccountLimit": {
"TotalCodeSize": 1231232132,
"CodeSizeUnzipped": 3242424,
"CodeSizeZipped": 324343434,
"**ConcurrentExecutions**": 10000,
"**UnreservedConcurrentExecutions**": 4000
},
"AccountUsage": {
"TotalCodeSize": 36972950817,
"FunctionCount": 1310
}
}
Невозможно получить эти значения на панели инструментов. Поскольку мы не можем выполнять вызовы API для извлечения и отображения данных на панели инструментов.
Решение
Мы можем создать лямбда-функцию, и в этой функции мы можем извлечь, используя API, широкие значения / настройки учетной записи для ConcurrentExecutions и UnreservedConcurrentExecutions. Затем мы можем создать новые метрики, которые будут отправлять два значения в CloudWatch. Мы можем планировать лямбда-функции AWS с помощью событий CloudWatch.
Получив метрику, мы можем установить необходимый сигнал тревоги для Неограниченного параллелизма.