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á.
TransactGetItems
O documento de mapeamento de TransactGetItems
solicitações permite que você peça ao AWS AppSync resolvedor do DynamoDB que faça uma TransactGetItems
solicitação ao DynamoDB para recuperar vários itens, potencialmente em várias tabelas. Para esse modelo de solicitação, você deve especificar o seguinte:
-
O nome da tabela de cada item de solicitação de onde recuperar o item
-
A chave de cada item de solicitação a ser recuperado de cada tabela
Os limites TransactGetItems
do DynamoDB se aplicam e nenhuma expressão de condição pode ser fornecida.
O documento de mapeamento TransactGetItems
possui a seguinte estrutura:
{ "version": "2018-05-29", "operation": "TransactGetItems", "transactItems": [ ## First request item { "table": "table1", "key": { "foo": ... typed value, "bar": ... typed value }, "projection" : { ... } }, ## Second request item { "table": "table2", "key": { "foo": ... typed value, "bar": ... typed value }, "projection" : { ... } } ] }
Os campos são definidos da seguinte forma:
TransactGetItems campos
-
version
-
A versão de definição do modelo. Somente
2018-05-29
é suportado. Este valor é obrigatório. -
operation
-
A operação do DynamoDB para execução. Para executar a operação
TransactGetItems
do DynamoDB, ela deve ser definida comoTransactGetItems
. Este valor é obrigatório. -
transactItems
-
Os itens de solicitação a serem incluídos. O valor é uma matriz de itens de solicitação. Pelo menos um item de solicitação deve ser fornecido. Este valor
transactItems
é obrigatório.-
table
-
A tabela do DynamoDB da qual recuperar o item. O valor é uma string do nome da tabela. Este valor
table
é obrigatório. -
key
-
A chave do DynamoDB representando a chave primária do item a ser recuperado. 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).
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 uma transação for bem-sucedida, a ordem dos itens recuperados no bloco
items
será a mesma que a ordem dos itens solicitados. -
As transações são realizadas de all-or-nothing alguma forma. Se algum item de solicitação causar um erro, não será executada a transação inteira e os detalhes do erro serão retornados.
-
Um item de solicitação que não pode ser recuperado não é um erro. Em vez disso, um elemento nulo aparece no bloco de itens na posição correspondente.
-
Se o erro de uma transação for TransactionCanceledException, o
cancellationReasons
bloco será preenchido. A ordem dos motivos de cancelamento no blococancellationReasons
será a mesma que a ordem de itens solicitados. -
TransactGetItems
está limitado a 100 itens de solicitação.
Para o seguinte exemplo do modelo de mapeamento de solicitação:
{ "version": "2018-05-29", "operation": "TransactGetItems", "transactItems": [ ## First request item { "table": "posts", "key": { "post_id": { "S": "p1" } } }, ## Second request item { "table": "authors", "key": { "author_id": { "S": a1 } } } ] }
Se a transação for bem-sucedida e somente o primeiro item solicitado for recuperado, o resultado de invocação disponível em $ctx.result
será o seguinte:
{ "items": [ { // Attributes of the first requested item "post_id": "p1", "post_title": "title", "post_description": "description" }, // Could not retrieve the second requested item null, ], "cancellationReasons": null }
Se a transação falhar devido à TransactionCanceledExceptioncausa do primeiro item da solicitação, o resultado da invocação $ctx.result
disponível em será o seguinte:
{ "items": null, "cancellationReasons": [ { "type":"Sample error type", "message":"Sample error message" }, { "type":"None", "message":"None" } ] }
O $ctx.error
contém detalhes sobre o erro. A presença dos itens de chaves e cancelationReasons está garantida em $ctx.result
.
Para ver um exemplo mais completo, siga o tutorial de transações do DynamoDB aqui Tutorial AppSync : resolvedores de transações do DynamoDB.