批量调用AWS Lambda?

时间:2020-05-02 10:39:00

标签: aws-lambda

我需要使用不同的参数调用AWS Lambda数十万次。有没有办法以某种方式批量执行它,传递一长串参数或例如每个有效负载只有一行的S3对象的路径?

3 个答案:

答案 0 :(得分:1)

您可以通过亚马逊的SQS传递所有参数。您可以指定批处理大小(即在一个组中同时发送的消息数)。唯一的问题是一次发送的最大消息数为10。尽管如此,这仍然比逐个处理消息更有效。另外,您也可以在一条消息中对所有参数进行编码,请记住,最大消息大小为256KB。

答案 1 :(得分:1)

一种常见的技术是:

  • 创建 Amazon SQS队列
  • 配置队列以触发您的AWS Lambda函数
  • 将消息发送到队列。每条消息将包含一组供Lambda函数使用的输入参数

您可以选择参数的格式,因为您将需要在Lambda函数中编写代码以从传递到处理程序函数的event记录中检索参数。

您可以配置批量大小,该大小控制向Lambda函数发送多少消息。您可以将其设置为1来处理一条消息,或者将其放大并让Lambda函数遍历已提供的消息。

在将所有消息放入队列之前,我建议您仅用几条消息进行测试

请参阅:

答案 2 :(得分:0)

<块引用>

我需要使用不同的参数调用 AWS Lambda 数十万次。

为此,您可以使用 aws EventBridge,您可以在其中使用 cron 表达式(为了细粒度)根据您的方便安排 lambda,或者如果您想从不同的 aws sources 或第三方发送事件也可以使用事件模式来完成。

<块引用>

选择目标作为 aws lambda 后,您可以 configure input 作为常量 jsontext、匹配事件、匹配事件的一部分或输入转换器

注意:- eventbroidge 还允许重试策略和交易信函队列