Error InvalidParameterType: Expected params.Item['pid'] to be a structure in DynamoDB
The putItem()
method on the AWS.DynamoDB
class is expecting the params.Item
object to be formatted as a AttributeValue representation. That means you would have to change this:
params = {
TableName: 'TABLE-NAME',
Item: {
pid: 'abc123'
}
};
Into this:
params = {
TableName: 'TABLE-NAME',
Item: {
pid: {
S: 'abc123'
}
}
};
If you want to use native javascript objects you should use the AWS.DynamoDB.DocumentClient
class, that automatically marshals Javascript types onto DynamoDB AttributeValues like this:
- String -> S
- Number -> N
- Boolean -> BOOL
- null -> NULL
- Array -> L
- Object -> M
- Buffer, File, Blob, ArrayBuffer, DataView, and JavaScript typed arrays -> B
It provides a put()
method, that delegates to AWS.DynamoDB.putItem()
.