Verificar - AWS AppSync

Verificar

A solicitação Scan permite a você orientar a função do DynamoDB do AWS AppSync a realizar uma solicitação Scan ao DynamoDB. Além disso, permite especificar:

  • Um filtro para excluir os resultados

  • Qual índice usar

  • Quantos itens retornar

  • Se deve usar leituras consistentes

  • Token de paginação

  • Verificações paralelas

O objeto de solicitação Scan tem a seguinte estrutura:

type DynamoDBScanRequest = { operation: 'Scan'; index?: string; limit?: number; consistentRead?: boolean; nextToken?: string; totalSegments?: number; segment?: number; filter?: { expression: string; expressionNames?: { [key: string]: string }; expressionValues?: { [key: string]: any }; }; projection?: { expression: string; expressionNames?: { [key: string]: string }; }; };

Os campos são definidos da seguinte forma:

Verificar campos

operation

A operação do DynamoDB para execução. Para executar a operação Scan do DynamoDB, ela deve ser definida como Scan. Este valor é obrigatório.

filter

Um filtro que pode ser usado para filtrar os resultados do DynamoDB antes que sejam retornados. Para obter mais informações sobre os filtros, consulte Filtros. Esse campo é opcional.

index

O nome do índice para consulta. A operação de consulta do DynamoDB permite que você faça a varredura em Índices secundários locais e Índices secundários globais, além do índice de chave primária para uma chave de hash. Se especificado, isso informa o DynamoDB para consultar o índice especificado. Se omitido, o índice da chave primária será consultado.

limit

O número máximo de itens a serem avaliados ao mesmo tempo. Esse campo é opcional.

consistentRead

Um booleano que indica se serão usadas leituras consistentes ao consultar o DynamoDB. Esse campo é opcional e usa como padrão false.

nextToken

O token de paginação para continuar uma consulta anterior. Isso seria obtido de uma consulta anterior. Esse campo é opcional.

select

Por padrão, a função do DynamoDB do AWS AppSync retorna apenas os atributos projetados no índice. Se forem necessários mais atributos, esse campo pode ser definido. Esse campo é opcional. Os valores compatíveis são:

ALL_ATTRIBUTES

Retorna todos os atributos de item da tabela ou índice especificado. Se você consultar um índice secundário local, o DynamoDB buscará todo o item da tabela pai para cada item correspondente no índice. Se o índice estiver configurado para projetar todos os atributos de item, todos os dados podem ser obtidos no índice secundário local, e nenhuma busca será necessária.

ALL_PROJECTED_ATTRIBUTES

Permitido apenas ao consultar um índice. Recupera todos os atributos que foram projetados no índice. Se o índice estiver configurado para projetar todos os atributos, esse valor de retorno é equivalente a especificar ALL_ATTRIBUTES.

SPECIFIC_ATTRIBUTES

Retorna somente os atributos listados em expression de projection. Esse valor de retorno é equivalente a especificar expression de projection sem especificar nenhum valor para Select.

totalSegments

O número de segmentos para particionar a tabela ao executar uma verificação paralela. Esse campo é opcional, mas deve ser especificado se segment estiver especificado.

segment

O segmento da tabela nessa operação ao executar uma verificação paralela. Esse campo é opcional, mas deve ser especificado se totalSegments estiver especificado.

projection

Uma projeção usada para especificar os atributos a serem retornados da operação do DynamoDB. Para obter mais informações sobre projeções, consulte Projeções. Esse campo é opcional.

Os resultados retornados pela verificação do DynamoDB são automaticamente convertidos nos tipos primitivos GraphQL e JSON e está disponível no resultado do contexto (context.result).

Para obter mais informações sobre a conversão de tipo do DynamoDB, consulte Sistema de tipo (mapeamento da resposta).

Para obter mais informações sobre resolvedores de JavaScript, consulte Visão geral de resolvedores de JavaScript.

Os resultados possuem a seguinte estrutura:

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

Os campos são definidos da seguinte forma:

items

Uma lista que contém os itens retornados pela verificação do DynamoDB.

nextToken

Se existirem mais resultados, nextToken conterá um token de paginação que você pode usar em outra solicitação. AWS O AppSync criptografa e ofusca o token de paginação retornado do DynamoDB. Isso impede que os dados da sua tabela sejam divulgados inadvertidamente para o chamador. Além disso, esses tokens de paginação não podem ser usados em diferentes funções ou resolvedores.

scannedCount

O número de itens recuperados pelo DynamoDB antes da aplicação de uma expressão de filtro (se houver).

Exemplo 1

O exemplo a seguir é um manipulador de solicitação de função para uma consulta allPosts GraphQL.

Nesse exemplo, todas as entradas na tabela são retornadas.

export function request(ctx) { return { operation: 'Scan' }; }

Exemplo 2

O exemplo a seguir é um manipulador de solicitação de função para uma consulta postsMatching(title: String!) GraphQL.

Nesse exemplo, todas as entradas na tabela são retornadas onde o título começa com o argumento title.

export function request(ctx) { const { title } = ctx.args; const filter = { filter: { beginsWith: title } }; return { operation: 'Scan', filter: JSON.parse(util.transform.toDynamoDBFilterExpression(filter)), }; }

Para obter mais informações sobre a API Scan do DynamoDB, consulte a Documentação da API do DynamoDB.