对 AWS Step Functions 设置自定义执行速率限制

问题描述 投票:0回答:2

我有一个生成 Lambda 函数的 Step 函数设置。 Lambda 函数生成速度太快,导致其他服务受到限制,因此我希望 Step 函数对其在给定时间启动的作业数量有速率限制。

我该如何最好地解决这个问题?

throttling aws-step-functions
2个回答
1
投票

我会尝试使用并发执行限制在 Lambda 函数端设置此限制 - https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html。通过这种方式,您可以限制特定 Lambda 函数的最大执行次数,从而为其余函数留下未预留的并发池。


0
投票

我一直在努力解决这个限制问题,试图找到最好的方法来在我的数据库前面设置一个杠杆,这样它就不会被淹没。不幸的是,

Step Functions
本身没有任何限制或并发设置,因此最好的方法是将其与
SQS
集成。您可以将
SQS
队列放在
Step Functions
工作流程前面或您需要保护的资源前面 - 我发现前者是最好的。

一个例子:

添加到

S3
存储桶的文件需要通过
Step Functions
工作流程进行处理并添加到数据库中。最好的方法是将您的
S3 Events
直接添加到
SQS
队列中,然后从这些事件启动您的
Step Function
工作流程。这样,工作流可以被视为在运行之前受到限制的单个处理单元。
Step Functions
可以通过启动
SQS
执行的
lambda function
链接到
Step Functions
队列,或者最好使用(相当新的)
EventBridge Pipes

整体架构:

event
->
SQS Queue
->
Step Functions Workflow
->
protected resource

© www.soinside.com 2019 - 2024. All rights reserved.