我计划使用DynamoDB流在一个非常复杂的单个表上执行一系列任务。该任务包括发送通知、更新数据库中的其他条目以及使用AWS OpenSearch对一些条目进行索引等操作。我已经看到,处理所有这些的Lambda函数最终会非常复杂,而且很难维护。这也让人觉得非常浪费,因为这个lambda中包含的大多数操作只适用于非常特定的流事件,而大多数其他操作都不需要。
我的想法是,我可以使用StateMachine将这些任务拆分为单独的Lambda,然后只在流中的某个项目需要它们时运行它们。
因此,我很好奇是否有任何简单的方法可以像使用Lambda一样,使用Step函数轮询DynamoDB流。
(PS。我知道这可能被认为是一个意见问题,但我也很好奇任何人对这个解决方案的看法。这是个好主意还是坏主意?(
lambda对于特定的处理必须是唯一的,这就是为什么最佳实践是将lambda拆分为许多子组件
例如,您可以使用以下架构:
DynamoDB流-->Lambda-->阶跃函数(parralele处理(
或者使用多个带有SNS扇出的Lambda,如:
DynamoDB流-->Lambda-->SNS->多个子(lambdas(