DynamoDB:在写入事务中对全局二级索引进行条件检查

DynamoDB: Conditional check on Global Secondary Index in Write Transaction

我有一个 DynamoDB table 正在跟踪两个 ID:

此 table 有一个全局二级索引,分区键设置为 B,排序键设置为 A;作为对主 table.

中记录的反向查找

我想在主 table 中添加一条记录,但前提是 B 没有记录。具体来说,我想:

  1. 检查 GSI
  2. 中是否不存在 B
  3. 调用另一个系统做某事
  4. 放一条记录 B 和一条随机生成的 A

这是否可能使用 DynamoDB 事务写入?通过查看文档,这里有一个 ConditionCheck 操作可能很有用;但据我所知,似乎无法 运行 对 GSI 进行条件检查,还是我遗漏了什么?

您不能进行包含 GSI 的交易。我建议您遵循此博客 post 的设计,在基 table 中放置一个条目,以 B 作为主键以启用唯一性检查(也许然后使用它而不是 GSI):

https://aws.amazon.com/blogs/database/simulating-amazon-dynamodb-unique-constraints-using-transactions/