AppSync 批量更新项目?

AppSync Batch Update Item?

根据 documentation,AppSync 似乎不支持 BatchUpdateItem(仅支持 BatchPutItem 和 BatchGetItem)。我有一个用例,我想更新 table 中多个项目的特定属性。在 AppSync 和 DynamoDB 中是否有一种有效的方法来执行此操作?我不能执行 batchPutItem,因为我可能会用过期的属性覆盖该项目(另一个客户端更新了一个属性)。因此,唯一的选择是一次执行一项 UpdateItem。我正在考虑在我的 iOS 应用程序中设置一个调用 UpdateItem n 次的循环。这是否意味着会有n个网络回合?我想提高我的设计效率。无论如何我可以在一次网络往返中完成所有更新吗?谢谢。

Is there anyway I can do all the updates in one network round trip?

我认为你对这一系列问题的处理是合理的。

您可以尝试设置一个由 Lambda 函数数据源处理的突变。让 Lambda 函数执行循环并报告任何冲突。这样您就可以在一次网络调用中完成所有操作。

更多关于 Lambda 解析器的信息:https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-lambda-resolvers.html

要更新项目,您可以使用给定的 ID 调用 BatchPutItem。它将被覆盖。