Вставьте стандартный 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. Он работает немного по-другому, но должен делать то, что вы хотите.

Другие вопросы по тегам