Вставьте стандартный JSON в DynamoDB aws-sdk js v3
Я пытаюсь зарегистрироваться
Standard JSON
в
DynamoDB
используя aws-sdk версии 3 для JS в поле эскизов .
В версии 2 было разрешено использование
put
метод, в версии 3 теперь есть команды, но я не вижу эквивалентной команды.
Мой код:
const { DynamoDBClient, PutItemCommand } = require('@aws-sdk/client-dynamodb');
const DynamoDBDocClient = new DynamoDBClient({ region: "us-east-1"});
const item = {
PK: "My_pk",
SK: "My_sk",
username: "My_username",
thumbnail: {
id: "My_id",
width: "My_width",
height: "My_height"
}
}
const params = {
Item: item,
TableName: "My_table"
};
await DynamoDBDocClient.send(new PutItemCommand(params));
Ошибка:
ERROR TypeError: Cannot read property '0' of undefined
at Object.visit (/var/task/node_modules/@aws-sdk/client-dynamodb/dist/cjs/models/models_0.js:1101:40)
at serializeAws_json1_0AttributeValue (/var/task/node_modules/@aws-sdk/client-dynamodb/dist/cjs/protocols/Aws_json1_0.js:4612:38)
at /var/task/node_modules/@aws-sdk/client-dynamodb/dist/cjs/protocols/Aws_json1_0.js:5514:20
at Array.reduce (<anonymous>)
Я могу только зарегистрировать предмет его использования
marshall
(из
@aws-sdk/util-dynamodb
), но он регистрируется как
DynamoDB JSON
:
1 ответ
Решение
В v3 вы должны использовать библиотеку @aws-sdk / lib-Dynamodb, чтобы получить функциональность, аналогичную
DynamoDB.DocumentClient
в старом SDK. Он работает немного по-другому, но должен делать то, что вы хотите.