有没有办法以编程方式了解有多少个 Lambda 函数的并发实例正在执行?

Ani*_*Das 5 aws-lambda

假设在给定时间,异步调用了特定 Lambda 函数的多个实例,

那么,有没有办法找到当前正在运行的 Lambda 函数有多少个活动并发实例呢?

在仪表板的帐户级别指标中,我们可以找到并发执行的数量。另外,我认为对于每个新的 Lambda 容器创建,Cloudwatch 都会为 Lambda 函数创建一个新的日志流。也许可以以某种方式使用这些。

但我想知道是否存在不同的方法来以编程方式获取这些数字,例如使用boto3api 等?

tho*_*ace 3

最简洁的答案是不。

可以通过编程方式访问 cloudwatch 指标(请参阅:boto3 CloudWatch.Client.get_metric_data),但是这些指标会滞后一分钟。更糟糕的是,当单个 lambda 返回时invocations,您只能访问ConcurrentExecutions整个帐户 - 这意味着您能做的最好的事情就是将 lambda 放入它自己的 AWS 帐户中,即使这样您仍然会落后一分钟- 通常比平均 lambda 寿命长。

不过,我应该指出,通过“保留并发”,lambda 确实公开了一种至少初步控制并发的方法。示例用例是,如果您正在调用具有有限连接池的外部服务/数据库。