【问题标题】:Temporarily disable DynamoDB Lambda Triggers / Stream暂时禁用 DynamoDB Lambda 触发器/流
【发布时间】:2016-07-25 13:59:34
【问题描述】:

我正在寻找一种方法来临时禁用 DynamoDB 上的 Lambda 触发器。我希望能够在不触发 Lambda 代码的情况下对表应用手动更新(例如,从 S3 备份导入数据)。我尝试了 lambda 函数“触发器”选项卡中触发器旁边的禁用按钮。我还尝试禁用表的整个流。在这两种情况下,当重新激活触发器/流时,所有的触发器事件(在它们被停用时发生)都会被执行。

如何防止触发此代码?

非常感谢!

【问题讨论】:

  • 将触发器添加回lambda函数时,您将起始位置设置为什么?在这种情况下,它需要是最新的。如果设置为 TRIM_HORIZON,它将从流中最旧的记录开始(流记录保留 24 小时)。
  • 好的,我想知道这是否是我的问题的关键。但我对此仍然有点不安全。从 lambda 控制台创建触发器时,我可以设置起始位置。因此,当我将触发器设置为从 LATEST 开始时,它会在手动禁用并再次启用后执行此操作。但是,如果存在某种错误或瓶颈,它是否也会影响它的一般工作方式?是否仍然保证所有事件都将由触发器处理?我不太了解这个设置。不要忘记:谢谢你,这对我来说是一个重要的答案!
  • 设置起始位置只影响它开始读取流的位置。除此之外,它根本不影响流的行为。在 lambda 函数返回成功之前,Streams 不会继续,因此如果遇到错误,将使用相同的事件数据再次调用该函数。你必须在这里小心,因为如果它是你的代码中的一个错误(即不是一个 api 调用错误),你会在那个时候卡住。然而,不管流的起始位置如何,这是一个需要注意的问题
  • 非常感谢@JonathanSeed!我真的很难弄清楚这是如何工作的。您提供的信息非常非常有用!再次感谢您的努力!

标签: amazon-web-services lambda amazon-dynamodb aws-lambda amazon-dynamodb-streams


【解决方案1】:

对于得到此答案的其他人 - https://alestic.com/2015/11/aws-lambda-kinesis-pause-resume/ 提供了一个 CLI 解决方案,用于暂停流读取,并在未来某个时间从同一位置恢复。

【讨论】:

  • 这并不是 OP 所要求的。他们想要更新表,然后从该点继续读取流,忽略批量更新期间所做的更改。
猜你喜欢
  • 2019-11-08
  • 2020-02-27
  • 1970-01-01
  • 2015-10-13
  • 2021-01-24
  • 1970-01-01
  • 2018-12-18
  • 2018-08-29
  • 1970-01-01
相关资源
最近更新 更多