如果您遇到了此错误,这意味着您正在尝试向DynamoDB表添加不符合表定义的键元素。确保您传递给batchWrite操作的每个项目都符合表定义。如果有些项目不符合表定义,可以跳过它们,然后继续处理其他项目。以下是一个使用JavaScript SDK的示例,可以让您了解如何忽略无效项目:
const AWS = require('aws-sdk')
const dynamodb = new AWS.DynamoDB({ region: 'your-region' })
const params = {
RequestItems: {
'your-TableName': [
{
PutRequest: {
Item: { // valid item
id: { N: '1' },
name: { S: 'Name 1' },
category: { S: 'Category 1' },
}
}
},
{
PutRequest: {
Item: { // invalid item
id: { N: '2' },
name: { S: 'Name 2' }
// missing category
}
}
},
{
PutRequest: {
Item: { // valid item
id: { N: '3' },
name: { S: 'Name 3' },
category: { S: 'Category 3' },
}
}
}
]
}
}
dynamodb.batchWriteItem(params, function (err, data) {
if (err) console.log(err, err.stack)
else {
console.log(data)
const unprocessedItems = data.UnprocessedItems['your-TableName']
if (unprocessedItems && unprocessedItems.length > 0) {
console.log(`Batch write completed with ${unprocessedItems.length} unprocessed items`)
params.RequestItems['your-TableName'] = unprocessedItems
dynamodb.batchWriteItem(params, function (err, data) {
if (err) console.log(err, err.stack)
else console.log(data)
})
}
}
})
上一篇:AWSDynamoDb + Spring Boot + AWS Lambda =>
AWS DynamoDb + Spring Boot + AWS Lambda
下一篇:AWSDynamoDB-ConditionalCheckFailedException:Theconditionalrequestfailed