python-2.7 - 查找值是否已在 Dynamodb 中更新或插入?
问题描述
我正在使用 updatedItem() 函数,该函数在 Dynamodb 中插入或更新值。如果值正在更新,我想获取这些项目并调用一个新的 lambda 函数。我怎样才能做到这一点?
解决方案
最直接的方法是添加ReturnValues: 'UPDATED_NEW'
到您用于updateItem()
调用的参数中。
然后,您可以判断您是否插入了一个新项目,因为返回的Attributes
将包括您的分区(以及排序,如果您使用了复合)键。
这是因为您无法更改项目的密钥,因此如果您所做的只是更新项目,那么您将不会更新其密钥。但是,如果您创建了一个新项目,那么您将“更新”其密钥。
但是,如果您想对 dynamo 表中更新的项目做出反应,您也可以使用 DynamoDB Streams (docs)。
这些流允许您在 dynamo 表上的事务上触发 lambda。然后,这个 lambda 可以过滤事件以进行更新并做出相应的反应。这种架构方法的优点是它意味着如果有任何更新表,您的“onUpdate”功能将触发 - 而不仅仅是特定的 lambda。
推荐阅读
- express - 快速会话不适用于 DialogFlow
- google-apps-script - 使用 Google 幻灯片中的应用程序脚本将 pageElements 放在前面或后面
- shell - Shell:带有 echo 命令的 ksh 脚本不显示任何内容
- regex - 应用程序脚本正则表达式:SyntaxError:量词无效
- javascript - 正则表达式,将每个 CSV 字段用双引号括起来
- c# - datagridtextcolumn.ElementStyle 上的 WPF 数据网格绑定错误
- java - 将范围报告 HTML 文件转换为 PDF
- c++ - 模板变量是否允许在多个翻译单元中并有效合并?
- android - 多窗口 - 是否可以让应用程序小于 33% 的屏幕?
- c# - 我可以从本地 C# 应用程序列出 Azure 资源组吗?