Cliente de documentos de DynamoDB - AWS SDK para JavaScript

La Guía de referencia de la API de AWS SDK for JavaScript V3 describe en detalle todas las operaciones de la API para la versión 3 (V3) de AWS SDK for JavaScript.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cliente de documentos de DynamoDB

Uso básico del cliente de documentos de DynamoDB en v3

  • En v2, puede usar la clase AWS.DynamoDB.DocumentClient para llamar a las API de DynamoDB con tipos de JavaScript nativos, como Array, Number y Object. De este modo, se simplifica el trabajo con elementos en Amazon DynamoDB al abstraer la noción de valores de atributos.

  • En v3, está disponible el cliente equivalente @aws-sdk/lib-dynamodb. Es similar a los clientes de servicio normales del SDK v3, con la diferencia de que utiliza un cliente de DynamoDB básico en su constructor.

Ejemplo:

import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // ES6 import // const { DynamoDBClient } = require("@aws-sdk/client-dynamodb"); // CommonJS import import { DynamoDBDocumentClient, PutCommand } from "@aws-sdk/lib-dynamodb"; // ES6 import // const { DynamoDBDocumentClient, PutCommand } = require("@aws-sdk/lib-dynamodb"); // CommonJS import // Bare-bones DynamoDB Client const client = new DynamoDBClient({}); // Bare-bones document client const ddbDocClient = DynamoDBDocumentClient.from(client); // client is DynamoDB client await ddbDocClient.send( new PutCommand({ TableName, Item: { id: "1", content: "content from DynamoDBDocumentClient", }, }) );

Valores Undefined en el momento de serializar

  • En v2, los valores undefined de los objetos se omitieron automáticamente durante el proceso de serialización para DynamoDB.

  • En v3, el comportamiento de serialización predeterminado en @aws-sdk/lib-dynamodb ha cambiado: los objetos con valores undefined ya no se omiten. Para alinearse con la funcionalidad de v2, los desarrolladores deben establecer de manera explícita removeUndefinedValues en true en el marshallOptions del cliente de documentos de DynamoDB.

Ejemplo:

import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; import { DynamoDBDocumentClient, PutCommand } from "@aws-sdk/lib-dynamodb"; const client = new DynamoDBClient({}); // The DynamoDBDocumentClient is configured to handle undefined values properly const ddbDocClient = DynamoDBDocumentClient.from(client, { marshallOptions: { removeUndefinedValues: true } }); await ddbDocClient.send( new PutCommand({ TableName, Item: { id: "123", content: undefined // This value will be automatically omitted. array: [1, undefined], // The undefined value will be automatically omitted. map: { key: undefined }, // The "key" will be automatically omitted. set: new Set([1, undefined]), // The undefined value will be automatically omitted. }; }) );

Hay más ejemplos y configuraciones disponibles en el archivo README del paquete.