检查以下几点:
mutation的resolver是否正确处理了update操作,并返回了更新后的对象;
schema中定义的DynamoDB table是否与实际的table名一致;
mutation所在的API是否有足够的权限访问DynamoDB table;
确认mutation是否被正确的触发。可能需要检查Application log或者CloudWatch log确认mutation是否被正确触发,并且被正确的解析。
以下是一个示例resolver,可以参考使用:
const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient();
exports.handler = async (event) => {
const params = {
TableName: "YOUR_DYNAMODB_TABLE_NAME",
Key: {
"id": event.arguments.id
},
UpdateExpression: "set name=:n, age=:a",
ExpressionAttributeValues: {
":n": event.arguments.name,
":a": event.arguments.age
},
ReturnValues:"ALL_NEW"
};
try {
const data = await docClient.update(params).promise();
return data.Attributes;
} catch (err) {
console.log(err);
return err;
}
};