Examen - AWS AppSync

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.

Examen

El documento de mapeo de Scan solicitudes le permite indicar al solucionador de AWS AppSync DynamoDB que realice Scan una solicitud a DynamoDB y le permite especificar lo siguiente:

  • Un filtro para excluir resultados

  • Qué índice utilizar.

  • Cuántos elementos deben devolverse.

  • Si se utilizarán lecturas coherentes.

  • Token de paginación

  • Exámenes en paralelo

El documento de mapeo de Scan tiene la siguiente estructura:

{ "version" : "2017-02-28", "operation" : "Scan", "index" : "fooIndex", "limit" : 10, "consistentRead" : false, "nextToken" : "aPaginationToken", "totalSegments" : 10, "segment" : 1, "filter" : { ... }, "projection" : { ... } }

Los campos se definen de la siguiente manera:

Campos de Scan

version

La versión de la definición de plantilla 2017-02-28 y 2018-05-29 se admiten actualmente. Este valor es obligatorio.

operation

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

filter

Un filtro que se puede utilizar para filtrar los resultados de DynamoDB antes de que se devuelvan. Para obtener más información acerca de los filtros, consulte Filtros. Este campo es opcional.

index

El nombre del índice que se consultará. La operación de consulta de DynamoDB permite escanear en índices secundarios locales y globales además de hacerlo en el índice de clave principal de una clave hash. Si se especifica, indica a DynamoDB que debe consultar el índice especificado. Si se omite, se consultará el índice de clave principal.

limit

El número máximo de elementos que se evalúan en una sola vez. Este campo es opcional.

consistentRead

Valor booleano que indica si se utilizarán lecturas coherentes al consultar DynamoDB. Este campo es opcional y de forma predeterminada es false.

nextToken

El token de paginación para continuar una consulta anterior. Se debe obtener de una consulta anterior. Este campo es opcional.

select

De forma predeterminada, el solucionador de AWS AppSync DynamoDB solo devuelve los atributos que se proyectan en el índice. Si se necesitan más atributos, este campo se puede configurar. Este campo es opcional. Los valores admitidos son:

ALL_ATTRIBUTES

Devuelve todos los atributos de elementos de la tabla o el índice especificados. Si consulta un índice secundario local, DynamoDB recupera todo el elemento de la tabla principal para cada elemento coincidente en el índice. Si el índice está configurado para proyectar todos los atributos de los elementos, todos los datos se pueden obtener del índice secundario local y no es necesario efectuar una recuperación.

ALL_PROJECTED_ATTRIBUTES

Permitido solo al consultar un índice. Recupera todos los atributos que se han proyectado en el índice. Si el índice está configurado para proyectar todos los atributos, este valor de retorno equivale a especificar ALL_ATTRIBUTES.

SPECIFIC_ATTRIBUTES

Devuelve solo los atributos que aparecen en la expression de la projection. Este valor devuelto equivale a especificar la expression de la projection sin especificar ningún valor para Select.

totalSegments

El número de segmentos para dividir en particiones la tabla al realizar un examen paralelo. Este campo es opcional, pero debe especificarse si se indica segment.

segment

El segmento de tabla de esta operación al realizar un examen en paralelo. Este campo es opcional, pero debe especificarse si se indica totalSegments.

projection

Proyección que se utiliza para especificar los atributos que se devolverán de la operación de DynamoDB. Para obtener más información acerca de las proyecciones, consulte la sección Proyecciones. Este campo es opcional.

Los resultados devueltos por el escaneo de DynamoDB se convierten automáticamente en GraphQL y tipos primitivos JSON y están disponibles en el contexto de mapeo (). $context.result

Para obtener más información sobre la conversión de tipos de DynamoDB, consulte la sección Sistema de tipos (mapeo de respuestas).

Para obtener más información acerca de las plantillas de mapeo de respuesta, consulte Información general sobre las plantillas de mapeo de solucionador.

Los resultados tienen la estructura siguiente:

{ items = [ ... ], nextToken = "a pagination token", scannedCount = 10 }

Los campos se definen de la siguiente manera:

items

Una lista que contiene los elementos que devuelve el análisis de DynamoDB.

nextToken

Si hay más resultados, nextToken contiene un token de paginación que puede usar en otra solicitud. AWS AppSync cifra y oculta el token de paginación devuelto por DynamoDB. Esto evita que los datos de las tablas se filtren accidentalmente al intermediario. Además, estos tokens de paginación no se pueden utilizar en diferentes solucionadores.

scannedCount

El número de elementos que DynamoDB ha recuperado antes de aplicar una expresión de filtro (en caso de incluirse).

Ejemplo 1

El siguiente ejemplo muestra una plantilla de mapeo de una consulta de GraphQL: allPosts.

En este ejemplo, se devuelven todas las entradas de la tabla.

{ "version" : "2017-02-28", "operation" : "Scan" }

Ejemplo 2

El siguiente ejemplo muestra una plantilla de mapeo de una consulta de GraphQL: postsMatching(title: String!).

En este ejemplo, todas las entradas de la tabla se devuelven donde el título comienza con el argumento title.

{ "version" : "2017-02-28", "operation" : "Scan", "filter" : { "expression" : "begins_with(title, :title)", "expressionValues" : { ":title" : $util.dynamodb.toDynamoDBJson($context.arguments.title) }, } }

Para obtener más información sobre DynamoDB, consulte la documentación de Scan API DynamoDB. API