AWS Lambdaを使用していて、AWSDynamoDBに何かを書き込もうとしています。私は次のコードを使用します:
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のawssdkが変更されたために発生しました。
使用している場合:
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