我正在做一个设计,我们需要通过邮件实时通知客户有关交易的信息。我正在考虑使用DynamoDB Stream + Lambda,但是要发送电子邮件,我需要使用特定于团队的Java服务,因此,是否有任何参考维基可用-Lambda如何调用Java服务?另一种替代方法是DynamoDB Streams Kinesis Adapter ,但我感到困惑的是,是否每次要从Stream读取数据时都要启动应用程序端点(轮询),还是在更新DynamoDB时是否有任何事件驱动(基于推送)机制可触发Java应用程序中的方法执行?
答案 0 :(得分:0)
将lambda函数映射到dynamodb表流时,对于每个要插入,更新或删除的项,aws都会自动调用lambda函数。
在每次lambda调用中,aws都会包含该项目以及更新时的先前值,因此您无需自己阅读该项目。
您描述的情况非常适合动力发电机流
。需要注意的一件事:如果您映射的lambda失败,aws将重试同一项目,直到成功或24小时过去为止,这可能会延迟该表要处理的所有其余项目。确保您的lambda始终返回成功,并以某种方式安排您的代码,以使其多次执行不会造成问题。例如。如果您的lambda在发送电子邮件后失败,aws将重试它,再次发送邮件,并且一次又一次失败。 Aws将增加重试间隔,但您仍然不希望重复执行任务。