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 comoScan
. 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
deprojection
. Esse valor de retorno é equivalente a especificarexpression
deprojection
sem especificar nenhum valor paraSelect
.
-
-
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.