Согласно документация, похоже, что AppSync не поддерживает BatchUpdateItem (поддерживает только BatchPutItem и BatchGetItem). У меня есть вариант использования, когда я хочу обновить определенный атрибут нескольких элементов в таблице. Есть ли эффективный способ сделать это в AppSync и DynamoDB? Я не могу выполнить batchPutItem, потому что могу перезаписать элемент с просроченными атрибутами (другой клиент обновил атрибут). Таким образом, единственный вариант - выполнять UpdateItem по одному элементу за раз. Я подумываю создать цикл в моем приложении для iOS, который n раз вызывает UpdateItem. Означает ли это, что будет n сетевых раундов? Я хочу, чтобы мой дизайн был эффективным. Могу ли я выполнить все обновления за один сетевой обход? Спасибо.





Is there anyway I can do all the updates in one network round trip?
Я думаю, что вы придерживаетесь разумного подхода к этому вопросу.
Вы можете попробовать настроить мутацию, которая будет обрабатываться источником данных лямбда-функции. Пусть функция Lambda выполнит цикл и сообщит о любых конфликтах. Таким образом, вы можете сделать все это за один сетевой вызов.
Подробнее о преобразователях лямбда здесь: https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-lambda-resolvers.html
Чтобы обновить элементы, вы можете вызвать BatchPutItem с заданными идентификаторами. Он будет перезаписан.