As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
BatchGetItem
O objeto de BatchGetItem
solicitação permite que você peça à função do AWS AppSync DynamoDB que faça uma BatchGetItem
solicitação ao DynamoDB para recuperar vários itens, potencialmente em várias tabelas. Para esse objeto de solicitação, você deve especificar o seguinte:
-
Os nomes da tabela da qual recuperar os itens
-
As chaves dos itens a serem recuperadas de cada tabela
Os limites BatchGetItem
do DynamoDB se aplicam e nenhuma expressão de condição pode ser fornecida.
O objeto de solicitação BatchGetItem
tem a seguinte estrutura:
type DynamoDBBatchGetItemRequest = { operation: 'BatchGetItem'; tables: { [tableName: string]: { keys: { [key: string]: any }[]; consistentRead?: boolean; projection?: { expression: string; expressionNames?: { [key: string]: string }; }; }; }; };
Os campos são definidos da seguinte forma:
BatchGetItem campos
-
operation
-
A operação do DynamoDB para execução. Para executar a operação
BatchGetItem
do DynamoDB, ela deve ser definida comoBatchGetItem
. Este valor é obrigatório. -
tables
-
As tabelas do DynamoDB das quais recuperar os itens. O valor é um mapa no qual os nomes das tabelas são especificados como as chaves do mapa. Pelo menos uma tabela deve ser fornecida. Este valor
tables
é obrigatório.-
keys
-
Lista de chaves do DynamoDB representando a chave primária dos itens a serem recuperados. Os itens do DynamoDB podem ter uma única chave de hash ou uma chave de hash e uma chave de classificação, dependendo da estrutura da tabela. Para obter mais informações sobre como especificar um "valor digitado", consulte Sistema de tipo (Mapeamento de solicitação).
-
consistentRead
-
Se deve usar uma leitura consistente ao executar uma GetItemoperação. Esse valor é opcional e o padrão é falso.
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.
-
Informações importantes:
-
Se um item não tiver sido recuperado da tabela, um elemento nulo aparecerá no bloco de dados dessa tabela.
-
Os resultados de invocação são classificados por tabela, com base na ordem em que foram fornecidos dentro do objeto de solicitação.
-
Cada comando
Get
dentro de umBatchGetItem
é atômico, no entanto, um lote pode ser parcialmente processado. Se um lote for parcialmente processado devido a um erro, as chaves não processadas serão retornadas como parte do resultado da invocação dentro do bloco. unprocessedKeys -
O
BatchGetItem
é limitado a 100 chaves.
Veja a seguir um exemplo de manipulador de solicitação de função:
import { util } from '@aws-appsync/utils'; export function request(ctx) { const { authorId, postId } = ctx.args; return { operation: 'BatchGetItem', tables: { authors: [util.dynamodb.toMapValues({ authorId })], posts: [util.dynamodb.toMapValues({ authorId, postId })], }, }; }
O resultado de invocação disponível em ctx.result
é o seguinte:
{ "data": { "authors": [null], "posts": [ // Was retrieved { "authorId": "a1", "postId": "p2", "postTitle": "title", "postDescription": "description", } ] }, "unprocessedKeys": { "authors": [ // This item was not processed due to an error { "authorId": "a1" } ], "posts": [] } }
O ctx.error
contém detalhes sobre o erro. É garantido que as chaves unprocessedKeys, dados e cada chave de tabela fornecida no resultado do objeto de solicitação de função estejam presentes no resultado da invocação. Os itens que foram excluídos aparecem no bloco data. Os itens que não foram processados são marcados como nulos dentro do bloco de dados e colocados dentro do unprocessedKeysbloco.