

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

O documento de mapeamento de `BatchGetItem` solicitações permite que você peça ao AWS AppSync resolvedor do DynamoDB que faça uma `BatchGetItem` 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:
+ 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 documento de mapeamento `BatchGetItem` possui a seguinte estrutura:

```
{
    "version" : "2018-05-29",
    "operation" : "BatchGetItem",
    "tables" : {
        "table1": {
           "keys": [
              ## Item to retrieve Key
              {
                   "foo" : ... typed value,
                   "bar" : ... typed value
              },
              ## Item2 to retrieve Key
              {
                   "foo" : ... typed value,
                   "bar" : ... typed value
              }
            ],
            "consistentRead": true|false,            
            "projection" : {
                 ...
            }
        },
        "table2": {
           "keys": [
              ## Item3 to retrieve Key
              {
                   "foo" : ... typed value,
                   "bar" : ... typed value
              },
              ## Item4 to retrieve Key
              {
                   "foo" : ... typed value,
                   "bar" : ... typed value
              }
            ],
            "consistentRead": true|false,
            "projection" : {
                 ...
            }
        }
    }
}
```

Os campos são definidos da seguinte forma:

## BatchGetItem campos
<a name="BatchGetItem-list"></a>

### BatchGetItem lista de campos
<a name="BatchGetItem-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 `BatchGetItem` do DynamoDB, ela deve ser definida como `BatchGetItem`. 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)](aws-appsync-resolver-mapping-template-reference-dynamodb-typed-values-request.md).  
** `consistentRead` **  
Se deve usar uma leitura consistente ao executar uma *GetItem*operaçã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](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 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 modelo de mapeamento de solicitação.
+ Cada comando `Get` dentro de um `BatchGetItem` é 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 chamada dentro do bloco *unprocessedKeys*.
+  O `BatchGetItem` é limitado a 100 chaves.

Para o seguinte exemplo do modelo de mapeamento de solicitação:

```
{
  "version": "2018-05-29",
  "operation": "BatchGetItem",
  "tables": {
    "authors": [
        {
          "author_id": {
            "S": "a1"
          }
        },
    ],
    "posts": [
        {
          "author_id": {
            "S": "a1"
          },
          "post_id": {
            "S": "p2"
          }
        }
    ],
  }
}
```

O resultado de invocação disponível em `$ctx.result` é o seguinte:

```
{
   "data": {
     "authors": [null],
     "posts": [
        # Was retrieved
        {
          "author_id": "a1",
          "post_id": "p2",
          "post_title": "title",
          "post_description": "description",
        }
     ]
   },
   "unprocessedKeys": {
     "authors": [
        # This item was not processed due to an error
        {
          "author_id": "a1"
        }
      ],
     "posts": []
   }
}
```

O `$ctx.error` contém detalhes sobre o erro. As chaves **data**, **unprocessedKeys** e todas as chaves de tabela fornecidas no modelo de mapeamento de solicitação estão presentes no resultado da invocação. Os itens que foram excluídos aparecem no bloco **data**. Itens que não foram processados são marcados como *nulos* no bloco de dados e colocados dentro do bloco **unprocessedKeys**.

Para obter um exemplo mais completo, siga o tutorial do DynamoDB Batch aqui AppSync Tutorial[: resolvedores de lotes do DynamoDB](tutorial-dynamodb-batch.md#aws-appsync-tutorial-dynamodb-batch).