Панель инструментов DynamoDB не может сохранить / обновить элемент: ConditionalCheckFailedException
Мне нужно обновить элемент в таблице с помощью панели инструментов DDB консоли AWS. Но когда я захожу в "Изменить элемент" и нажимаю "Сохранить", я получаю ошибку ConditionalCheckFailedException.
Я предполагаю, что это означает, что существующий элемент имеет выражение ConditionExpression, которое мои новые данные каким-то образом нарушают. Но я не могу понять, как просмотреть это выражение на панели инструментов, чтобы определить причину проблемы.
Как просмотреть выражение ConditionExpression для элемента в таблице с панели управления DDB консоли AWS?
0 ответов
У меня была такая же проблема, и я решил ее с помощью поддержки AWS.
Проблема возникает из-за того, что консоль DynamoDB для вкладки "Элементы" представляет собой статическое отображение, которое делает снимок всех ваших элементов при первом отображении. Если вы выберете элемент, а затем вернетесь к экрану, вы все равно увидите тот же снимок - он не обновляется.
Когда вы пытаетесь обновить элемент, консоль отправляет значения всех существующих полей из моментального снимка этого элемента, и если какое-либо из этих полей отличается от их текущих значений в DynamoDB, обновление отклоняется. Таким образом, "условное выражение" относится к требованиям, которые консоль предъявляет к разрешению обновления.
Таким образом, обходной путь состоит в том, чтобы выполнить обновление окна браузера в списке элементов перед выбором элемента, который вы хотите отредактировать, а затем надеяться, что вы достаточно быстро внесете изменения, чтобы завершить его, прежде чем какие-либо внешние обновления таблицы изменят данные. Конечно, если у вас быстро меняющийся стол, вы не сможете действовать достаточно быстро, и поэтому консоль не подходит для работы.