Я пытаюсь сделать простой транзакционный «перенос» данных из одной таблицы в другую в DynamoDB (для добавления индексов). Вот звонок, который я делаю, обещание возвращается, потому что я использую .then () для его интерпретации, но, как вы можете видеть из результата, который я получаю, есть что-то неправильно с моим JSON , К сожалению, сообщение об ошибке не очень полезно. Очень благодарен за любую помощь.
var runner = async (column1Value, column2Value) => {
return await ddb.transactWriteItems({
TransactItems: [
{
Delete: {
TableName: 'TABLE_V2',
Key: {
AuthorName: {
S: column1Value
}
}
}
}
,
{
Put: {
Item: {
'AuthorName': {
S: column1Value
},
'AuthorTitle': {
S: column2Value
}
},
TableName: 'TABLE_V3'
}
}
]
}).promise();
}
Когда я запускаю свой код, я получаю следующее:
at Request.extractError...
message: 'Transaction cancelled, please refer cancellation reasons for specific reasons [ValidationError, None]',
code: 'TransactionCanceledException',
time: 2019-03-31T00:03:05.401Z,
requestId: 'URIARNJDVFHDVLQQNR1JMIJP5NVV4KQNSO5AEMVJF66Q9ASUAAJG',
statusCode: 400,
retryable: false,
retryDelay: 30.057548210067033
Я прочитал несколько сайтов, но все ссылаются на время до того, как DynamoDB изначально поддерживал транзакции с помощью .transactWriteItems ().
Например: Как поддерживать транзакции в DynamoDB с помощью Javascript AWS-SDK?