是否可以使用 AWS Step Functions 轮询 DynamoDB 流以降低 Lambda 复杂性?
Is it possible to use AWS Step Functions to poll a DynamoDB Stream to reduce Lambda complexity?
我计划使用 DynamoDB Stream 对非常复杂的单曲执行一系列任务 table。该任务包括发送通知、更新数据库中的其他条目以及使用 AWS OpenSearch 为某些条目编制索引等操作。我已经可以看到处理所有这些的 Lambda 函数最终将变得非常复杂并且很难维护。这也让人感觉非常浪费,因为包含在此 lambda 中的大多数操作仅适用于非常特定的流事件,大多数其他事件不需要。
我的想法是,我可以使用 StateMachine 将这些任务拆分为单独的 Lambda,然后仅在流中的某个项目需要它们时 运行 它们。
所以我很好奇是否有任何简单的方法可以像使用 Lambda 一样使用 Step Function 轮询 DynamoDB 流。
(PS。我知道这可以被认为是一个意见问题,但我也很好奇任何人对此解决方案的想法。这是好主意还是坏主意?)
对于特定处理,lambda 必须是唯一的,这就是为什么最好的做法是将 lambda 拆分为许多子组件
您可以使用这个架构,例如:
DynamoDB Stream --> Lambda --> Step Function(并行处理)
或者将多个 lambda 与 SNS 扇出一起使用,例如:
DynamoDB 流 --> Lambda --> SNS --> 多个子 (lambdas)
我计划使用 DynamoDB Stream 对非常复杂的单曲执行一系列任务 table。该任务包括发送通知、更新数据库中的其他条目以及使用 AWS OpenSearch 为某些条目编制索引等操作。我已经可以看到处理所有这些的 Lambda 函数最终将变得非常复杂并且很难维护。这也让人感觉非常浪费,因为包含在此 lambda 中的大多数操作仅适用于非常特定的流事件,大多数其他事件不需要。
我的想法是,我可以使用 StateMachine 将这些任务拆分为单独的 Lambda,然后仅在流中的某个项目需要它们时 运行 它们。
所以我很好奇是否有任何简单的方法可以像使用 Lambda 一样使用 Step Function 轮询 DynamoDB 流。
(PS。我知道这可以被认为是一个意见问题,但我也很好奇任何人对此解决方案的想法。这是好主意还是坏主意?)
对于特定处理,lambda 必须是唯一的,这就是为什么最好的做法是将 lambda 拆分为许多子组件
您可以使用这个架构,例如:
DynamoDB Stream --> Lambda --> Step Function(并行处理)
或者将多个 lambda 与 SNS 扇出一起使用,例如:
DynamoDB 流 --> Lambda --> SNS --> 多个子 (lambdas)