【问题标题】:Lambda function synchronously invoked using dynamoDB stream trigger understanding使用dynamoDB流触发理解同步调用的Lambda函数
【发布时间】:2019-12-05 22:49:15
【问题描述】:

我正在使用 Lambda 函数从 dyanmoDB 流中读取数据。 Lambda 从流中读取项目并为每个批次调用一次 lambda 函数。 Lambda 使用事件源映射同步调用 lambda 函数。

根据我从 aws 文档中了解到的情况,Lambda 为流中的每个批次调用一个 lambda 函数。假设流中有 1000 个项目,我将 lambda 函数配置为批量读取 100 个项目。

那么它会同时调用 10 个 lambda 函数来处理 10 批,每批 100 个项目吗?

我正在学习 AWS。我的理解正确吗?如果是,同步调用是什么意思?

【问题讨论】:

  • 我很确定同步调用意味着同时激活它们。我不知道你对 aws 的理解的答案
  • 能否给你看一下DDB阅读代码?

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


【解决方案1】:

DynamoDB 使用分片* 对表内的数据进行分区。将存储在每个分片中的数据由表的 HashKey 定义。 DynamoDB 流将为每个更新的分片触发 AWS Lambda,并批量聚合分片记录。所以每批中的记录数将取决于每个分片中更新的记录数。当然,它们可以不同。

同步调用意味着触发函数的服务会等到函数结束才完成自己的执行。当您触发异步时,您发送一个请求并忘记它。下游功能是否成功处理流不受上游服务的控制。 DynamoDB 同步调用 Lambda 函数并在其工作时等待。如果它成功结束,它会将流标记为已处理。如果它以失败告终,它将重试几次。这对于允许至少一次处理 ddb 流非常重要。

*分片是数据库的不同分区。它们允许 DynamoDB 处理并行查询和更新。通常它们位于不同的存储/可用区。

【讨论】:

    猜你喜欢
    • 2020-02-27
    • 2023-01-02
    • 2018-08-29
    • 2019-04-26
    • 2021-12-28
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    相关资源
    最近更新 更多