Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

BatchPutItem

Modo de enfoque
BatchPutItem - AWS AppSync GraphQL

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.

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.

El documento de mapeo de BatchPutItem solicitudes le permite indicar al solucionador de AWS AppSync DynamoDB que BatchWriteItem solicite a DynamoDB que coloque varios elementos, posiblemente en varias tablas. Para esta plantilla de solicitud, debe especificar lo siguiente:

  • Los nombres de tabla en los que poner los elementos

  • Los elementos completos que poner en cada tabla

Se aplican los límites de BatchWriteItem de DynamoDB y no puede proporcionar ninguna expresión de condición.

El documento de mapeo de BatchPutItem tiene la siguiente estructura:

{ "version" : "2018-05-29", "operation" : "BatchPutItem", "tables" : { "table1": [ ## Item to put { "foo" : ... typed value, "bar" : ... typed value }, ## Item2 to put { "foo" : ... typed value, "bar" : ... typed value }], "table2": [ ## Item3 to put { "foo" : ... typed value, "bar" : ... typed value }, ## Item4 to put { "foo" : ... typed value, "bar" : ... typed value }], } }

Los campos se definen de la siguiente manera:

BatchPutItem campos

version

La versión de la definición de plantilla. Solo se admite 2018-05-29. Este valor es obligatorio.

operation

La operación de DynamoDB que se ha de realizar. Para ejecutar la operación de DynamoDB BatchPutItem, este valor se debe establecer en BatchPutItem. Este valor es obligatorio.

tables

Las tablas de DynamoDB en las que poner los elementos. Cada entrada de la tabla representa una lista de elementos de DynamoDB que insertar para esta tabla específica. Al menos debe proporcionarse una tabla. Este valor es obligatorio.

version

La versión de la definición de plantilla. Solo se admite 2018-05-29. Este valor es obligatorio.

operation

La operación de DynamoDB que se ha de realizar. Para ejecutar la operación de DynamoDB BatchPutItem, este valor se debe establecer en BatchPutItem. Este valor es obligatorio.

tables

Las tablas de DynamoDB en las que poner los elementos. Cada entrada de la tabla representa una lista de elementos de DynamoDB que insertar para esta tabla específica. Al menos debe proporcionarse una tabla. Este valor es obligatorio.

Cosas que tener en cuenta:

  • Los elementos totalmente insertados se devuelven en la respuesta, si la operación se realiza correctamente.

  • Si un elemento no se ha insertado en la tabla, aparece un elemento nulo en el bloque de datos para esa tabla.

  • Los elementos insertados se ordenan por tabla, según el orden en el que se hayan proporcionado dentro de la plantilla de mapeo de solicitudes.

  • Cada comando Put dentro de un BatchPutItem es atómico; sin embargo, un lote se puede procesar parcialmente. Si un lote se procesa parcialmente debido a un error, la claves sin procesar se devuelven como parte del resultado de invocación dentro del bloque unprocessedKeys.

  • BatchPutItem está limitado a 25 elementos.

  • Esta operación no se admite cuando se utiliza con la detección de conflictos. El uso de ambas al mismo tiempo generará un error.

Para la siguiente plantilla de mapeo de solicitud de ejemplo:

{ "version": "2018-05-29", "operation": "BatchPutItem", "tables": { "authors": [ { "author_id": { "S": "a1" }, "author_name": { "S": "a1_name" } }, ], "posts": [ { "author_id": { "S": "a1" }, "post_id": { "S": "p2" }, "post_title": { "S": "title" } } ], } }

El resultado de invocación disponible en $ctx.result es el siguiente:

{ "data": { "authors": [ null ], "posts": [ # Was inserted { "author_id": "a1", "post_id": "p2", "post_title": "title" } ] }, "unprocessedItems": { "authors": [ # This item was not processed due to an error { "author_id": "a1", "author_name": "a1_name" } ], "posts": [] } }

El $ctx.error contiene detalles acerca del error. Está garantizado que los datos de claves, unprocessedItems y cada clave de tabla que se le proporcionó en la plantilla de mapeo de solicitud estarán presentes en el resultado de invocación. Los elementos que se han insertado están en el bloque de datos. Los elementos que no se hayan procesado se marcan como null dentro del bloque de datos y se colocan dentro del bloque unprocessedItems.

Para ver un ejemplo más completo, siga el tutorial de DynamoDB Batch que se encuentra aquí AppSync Tutorial: Resolvers por lotes de DynamoDB.

En esta página

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.