根据documentation,AppSync似乎不支持BatchUpdateItem(仅支持BatchPutItem和BatchGetItem)。我有一个用例,我想更新表中多个项目的特定属性。在AppSync和DynamoDB中是否有一种有效的方法来做到这一点?我无法执行batchPutItem,因为我可能会覆盖具有过期属性的项目(另一个客户端更新了属性)。因此,唯一的选择是一次执行一次UpdateItem。我正在考虑在我的iOS应用程序中循环调用n次UpdateItem。这是否意味着将进行n次网络回合?我想提高设计效率。无论如何,我可以一次网络往返进行所有更新吗?谢谢。
答案 0 :(得分:1)
反正我可以在一次网络往返中完成所有更新吗?
我认为您对这种质询表示满意。
您可以尝试设置要由Lambda函数数据源处理的突变。让Lambda函数执行循环并报告任何冲突。这样,您可以在一个网络呼叫中完成所有操作。
此处提供有关Lambda解析器的更多信息:https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-lambda-resolvers.html
答案 1 :(得分:0)
要更新项目,您可以使用给定的 ID 调用 BatchPutItem。它将被覆盖。