发送通知消息以验证是否已在 dynamoDB 中处理所有记录的最佳 aws 方法是什么
What's the best aws approach to send a notification message to validate if all records have been processed in dynamoDB
简介
我们正在构建一个处理月度文件的应用程序,这个项目涉及到很多aws组件:
- Lambda 从 S3 读取文件,对其进行解析并将其推送到 dynamoDB 并带有标记 (PENDING) 每条记录。
- 另一个 Lambda 将在第一个 Lambda 完成后处理这些记录,并在完成后将记录标记为 (PROCESSED)。
问题:
我们想在处理完所有记录后将结果发送到 SQS。
我们的方法
是使用 DynamoDB streaming 在每次更新记录时触发 lambda,Lambda 查询 dynamoDB 以检查是否处理了所有记录,以及为真时发送通知。
问题
- 是否有任何其他方法可以实现此目标而无需在每次更新记录时触发 Lambda?
- 是否有更好的方法不包括 DynamoDB 流?
- 我会推荐 Dynamodb Stream,因为它们足够可靠,触发 lambda 和更新非常便宜,执行时间通常为 1-100 毫秒。即使您有数百万次执行,它也是一个可靠的解决方案。有一种方法可以使用弹性缓存共享已处理消息的计数器,一旦您收到更新并且计数器为 0,您就完成了。
Are there any other approach that can achieve this goal without
triggering Lambda each time a record gets updated?
其他选项是有一个计划的 lambda 执行来检查所有从数据库处理的状态(查询已处理)并将其移动到 SQS。根据负载,您可以定义 运行 的频率。 (使用 cloudwatch 预定事件触发)
每个月都有一个 table monthly_file_process
行有额外的计数器怎么样?
读取 s3 文件后,对记录进行计数并将总数保留为计数器。随着每个 PROCESSED 一个减少计数器,如果更新后计数器为 0,则发送 SQS 通知。发送到 SQS 的整个过程可以通过处理记录的 2 个 lambda 完成,只需额外的步骤检查计数器。
简介
我们正在构建一个处理月度文件的应用程序,这个项目涉及到很多aws组件:
- Lambda 从 S3 读取文件,对其进行解析并将其推送到 dynamoDB 并带有标记 (PENDING) 每条记录。
- 另一个 Lambda 将在第一个 Lambda 完成后处理这些记录,并在完成后将记录标记为 (PROCESSED)。
问题: 我们想在处理完所有记录后将结果发送到 SQS。
我们的方法 是使用 DynamoDB streaming 在每次更新记录时触发 lambda,Lambda 查询 dynamoDB 以检查是否处理了所有记录,以及为真时发送通知。
问题
- 是否有任何其他方法可以实现此目标而无需在每次更新记录时触发 Lambda?
- 是否有更好的方法不包括 DynamoDB 流?
- 我会推荐 Dynamodb Stream,因为它们足够可靠,触发 lambda 和更新非常便宜,执行时间通常为 1-100 毫秒。即使您有数百万次执行,它也是一个可靠的解决方案。有一种方法可以使用弹性缓存共享已处理消息的计数器,一旦您收到更新并且计数器为 0,您就完成了。
Are there any other approach that can achieve this goal without triggering Lambda each time a record gets updated?
其他选项是有一个计划的 lambda 执行来检查所有从数据库处理的状态(查询已处理)并将其移动到 SQS。根据负载,您可以定义 运行 的频率。 (使用 cloudwatch 预定事件触发)
每个月都有一个 table
monthly_file_process
行有额外的计数器怎么样? 读取 s3 文件后,对记录进行计数并将总数保留为计数器。随着每个 PROCESSED 一个减少计数器,如果更新后计数器为 0,则发送 SQS 通知。发送到 SQS 的整个过程可以通过处理记录的 2 个 lambda 完成,只需额外的步骤检查计数器。