

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
<a name="aws-appsync-resolver-mapping-template-reference-dynamodb-transact-get-items"></a>

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
<a name="TransactGetItems-list"></a>

### TransactGetItems lista de campos
<a name="TransactGetItems-list-col"></a>

** `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 como `TransactGetItems`. 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)](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-request.md).  
**`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](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html#aws-appsync-resolver-mapping-template-reference-dynamodb-projections). 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 bloco `cancellationReasons` 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 à *TransactionCanceledException*causa 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](tutorial-dynamodb-transact.md#aws-appsync-tutorial-dynamodb-transact).