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 solicitação TransactGetItems permite que você oriente o resolvedor do AWS a fazer uma solicitação TransactGetItems ao DynamoDB para recuperar vários itens, potencialmente em diversas 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:
Campos TransactGetItems
-
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
TransactGetItemsdo 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
itemsserá a mesma que a ordem dos itens solicitados. -
As transações são executadas na sua totalidade ou não são realizadas. 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 bloco
cancellationReasonsserá preenchido. A ordem dos motivos de cancelamento no blococancellationReasonsserá a mesma que a ordem de itens solicitados. -
TransactGetItemsestá 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 a TransactionCanceledException causada pelo primeiro item de solicitação, o resultado de invocação disponível em $ctx.result 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 obter um exemplo mais completo, siga o tutorial de transação do DynamoDB com o AppSync aqui Tutorial: Resolvedores de transação do DynamoDB.