首页 文章

来自SQS触发器的Amazon Web Service Lambda低调用

提问于
浏览
0

我有一个AWS Lambda Function设置,带有来自SQS队列的触发器 . 当前队列有大约130万条消息可用 . 根据CloudWatch的说法,Lambda函数在给定的分钟内只有431次调用 . 我已经读过Lambda supports 1000 concurrent functions running at a time,所以我不确定为什么它会在给定的一分钟内达到最大值431 . 同样看起来我的函数平均只运行大约5.55s左右,因此这1000个可用并发槽中的每一个应该每分钟翻转多次,因此提供了更高的调用率 .

我怎样才能弄清楚这里发生了什么,让我的Lambda函数更及时地通过该SQS队列进行处理?

1 回答

  • 0

    您提到的1000并发连接限制假定您已提供足够的容量 .

    看看这个,特别是最后一点 . https://docs.aws.amazon.com/lambda/latest/dg/vpc.html

    如果Lambda函数访问VPC,则必须确保VPC具有足够的ENI容量,以支持Lambda函数的缩放要求 . 您可以使用以下公式来近似确定ENI容量 . 预计的峰值并发执行*(内存以GB / 3GB为单位)其中:预计的峰值并发执行 - 使用“管理并发”中的信息来确定此值 . 内存 - 为Lambda函数配置的内存量 . 您指定的子网应具有足够的可用IP地址以匹配ENI的数量 . 我们还建议您在Lambda函数配置中的每个可用区中至少指定一个子网 . 通过在每个可用区中指定子网,您的Lambda函数可以在另一个可用区中运行,如果其中一个发生故障或用完IP地址 .

    另请阅读本文,其中指出了许多可能影响您的事项:https://read.iopipe.com/5-things-to-know-about-lambda-the-hidden-concerns-of-network-resources-6f863888f656

    最后一点,请确保您的SQS Lambda触发器的batchSize为10(最大可用) .

相关问题