[英]Hold DynamoDB Stream Events in Lambda for a Small Period
我们计划在 Lambda Function 中添加一些更新,它已被设置为 DynamoDB 新项目事件的触发器
DynamoDB --> DynamoDB 流 --> AWS Lambda
因此,在执行更新时,我们需要确保 lambda 不应接收到任何事件。
是否有任何易于实施的方法来做到这一点?
DynamoDB Streams 可以使用事件源映射集成将事件直接发送到 Lambda 。 事件源映射是 AWS 管理的轮询器资源,可为您拉取事件。 如果您从等式中删除 EventBridge 并使用事件源映射,则可以使用其enabled
属性暂停消息流到 Lambda 消费者:
docs :设置为 true 以启用事件源映射。 设置为 false 以停止处理记录。 Lambda 跟踪最后处理的记录,并在重新启用映射时从该点恢复处理。
UpdateEventSourceMapping API 设置启用属性:
aws lambda update-event-source-mapping --uuid <mapping-uuid> --enabled false
如果您确实需要 EventBridge 集成,您可以暂时禁用触发您的 Lambda 的规则,然后使用 EventBridge 存档和重播功能在准备就绪时赶上。 您负责确定哪些事件需要重新处理。 如果您的应用程序是幂等的,这将更容易。
首先你为什么要使用 EventBridge?
路径应该是DynamoDB -> DynamoDB Streams -> Lambda
。
为确保 Lambda 仅接收新项目,您可以使用Lambda 事件过滤器
{
"filters": [
{
"pattern": "{\"eventName\" : [\"INSERT\"] }"
}
]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.