amazon-web-services - 从 AWS Lambda 调用时,AWS DynamoDB 返回验证错误

标签 amazon-web-services amazon-dynamodb aws-lambda

我正在使用 AWS Lambda 并尝试向 AWS DynamoDB 写入一些内容。我使用以下代码:

var tableName = "locations";
var item = {
    deviceId: {
        S: event.deviceId
    },
    timestamps: {
        S: event.timestamp 
    }
}
var params = {
    TableName: tableName,
    Item: item
};

dynamo.putItem(params, function(err, data) {
    if (err) {
        context.fail(new Error('Error ' + err));
    } else {
        context.success(null);
    }
});

我收到以下错误:
returns Error ValidationException: One or more parameter values were invalid: Type mismatch for key deviceId expected: S actual: M

最佳答案

发生这种情况是因为 Nodejs 的 aws sdk 已更改!

如果您正在使用:

var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();

然后 putItem 调用(和大多数其他调用)的参数发生了变化,而是需要:
var tableName = "locations";
var item = {
    deviceId: event.deviceId,
    timestamp: event.timestamp,
    latitude: Number(event.latitude),
    longitude: Number(event.longitude)
}
var params = {
    TableName: tableName,
    Item: item
};

在此处阅读有关新 sdk 的所有信息:https://github.com/awslabs/dynamodb-document-js-sdk

关于amazon-web-services - 从 AWS Lambda 调用时,AWS DynamoDB 返回验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32451380/

相关文章:

amazon-web-services - 用于 ECS 计划任务的 AWS CodePipeline?

java - Cloudwatch 与 xmatters 的集成

amazon-web-services - AWS DynamoDB API 是否对二级索引查询中返回的记录数有限制?

NoSQL Workbench 对 Dynamodb 中本地二级索引的支持

python - AWS Lambda - scrapy 库不工作(无法导入名称 certificate_transparency)

amazon-web-services - 将内容推送到 Amazon Echo

amazon-web-services - 当我使用无服务器运行 lambda 时日志流未创建

java - 在云中部署 C++ 应用程序

java - 基于GSI更新Dynamo DB列

kotlin - AWS Lambda的意外行为