【问题标题】:lambda iterative query dynamodblambda 迭代查询 dynamodb
【发布时间】:2018-11-27 21:39:49
【问题描述】:

我想将“uuid-mm-yyyy”格式的 ids 数组传递给 lambda。我有 2 个问题:1 个关于 lambda,1 个关于 DynamoDB。

Lambda:lambda 如何在 dynamodb 表中使用此 GSI 迭代更新 dynamodb 表?似乎 lambda 可以一次更新 1,但我找不到任何示例来根据输入数组迭代更新并返回结果数组。要更新我发现使用 UpdateItem。期望行为是如果存在则更新,如果不存在则添加。

DynamoDB:目前我的 DynamoDB 表有属性:id、propertyId、month、year。我添加了 GSI propertyId-month-year 和上面的值(uuid-mm-yyyy),这样我就可以知道这 3 个值来唯一地查询数据库。如果有更好的方法来设计我的表,请随时提出建议,以便对 uuid、月份和年份进行唯一查询。非常感谢!

【问题讨论】:

  • 请为您的问题提供更多背景信息。你想做什么?到目前为止,您的表结构是什么样的?您是在问有关 DynamoDB 或 Lambda 的问题吗?
  • 感谢马修的建议。我更新了我的问题。

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


【解决方案1】:

关于 DDB,请使用唯一的分区键将更有利于查询数据。否则将是扫描。 您可以在 DDB 架构中拥有一个属性,例如“partitionKey”,它的值可能是“id||propertyId”。 对于monthYear:存储纪元时间戳不是很好吗?

【讨论】:

  • 谢谢 Sigcout!我可以将 propertyId 的分区键和 timestampDue 的排序键作为纪元时间戳。但是,如果两者都匹配,我可以使用 dynamodb sdk 函数来更新,如果不匹配则添加?
  • UpdateItem 执行“Upsert”。如果主键不存在,则插入该项,如果存在,则更新该项。
  • 谢谢!您如何在一系列主键上迭代地调用它?
  • 或者更好地进行新的 API 调用来触发每个 GSI id 的 lambda 更新?我认为我们想要使用 ID 数组进行 1 个 API 调用,然后让 lambda 迭代更新数据库。请指教。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
相关资源
最近更新 更多