DynamoDB BatchGetItem com a AWS CLI

aws dynamodb batch-get-item busca até 100 itens por chave primária em um único comando (16 MB no máximo). As chaves vão em --request-items como um mapa de tabela → chaves em DynamoDB JSON — e você precisa verificar UnprocessedKeys na saída, porque um batch pode legitimamente retornar apenas parte do que você pediu.

Code

aws dynamodb batch-get-item \
  --request-items '{
    "Music": {
      "Keys": [
        {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}},
        {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "A Mis Abuelos"}},
        {"Artist": {"S": "Ella Fitzgerald"}, "SongTitle": {"S": "Misty"}}
      ]
    }
  }'

A saída mapeia cada tabela aos itens encontrados, mais quaisquer restantes:

{
    "Responses": {
        "Music": [
            {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
        ]
    },
    "UnprocessedKeys": {}
}

Explicação

  • --request-items — um mapa de nome de tabela → {"Keys": [...]}; um comando pode abranger múltiplas tabelas. Cada chave deve ser a chave primária completa (partição + classificação para uma chave composta). Mais de 100 chaves, ou a mesma chave duas vezes, falha com uma ValidationException.
  • Responses — os itens voltam em nenhuma ordem específica, e chaves que não existem simplesmente não aparecem — associe os resultados às requisições pelos atributos de chave.
  • UnprocessedKeys — ao contrário de query/scan, a CLI não faz retry automático de um batch parcial (não é um token de paginação). Se o mapa estiver não vazio — throttling, uma resposta de >16 MB — reexecute o comando com aquele mapa exato como --request-items (ele já está no formato certo), aplicando backoff entre as tentativas.
  • Por tabela você pode adicionar "ProjectionExpression": "..." (com "ExpressionAttributeNames") para buscar apenas alguns atributos, e "ConsistentRead": true para leituras com consistência forte — leituras em batch têm consistência eventual por padrão.
  • Dica: para mais do que algumas poucas chaves, mantenha o mapa em um arquivo e passe --request-items file://keys.json.

Faça visualmente

Escrever DynamoDB JSON aninhado dentro de aspas do shell à mão é propenso a erros. O DynamoDB Expression Builder constrói mapas tipados de chave/valor e copia comandos de CLI prontos para executar.

Para buscar e inspecionar itens entre tabelas numa GUI — sem escape de JSON, sem controle de re-execução — baixe o DynoTable.

Exemplos relacionados

References

Última verificação em 2026-07-13 contra a documentação oficial da AWS vinculada acima.

Trabalhe com o DynamoDB sem o Console

O DynoTable é um cliente desktop rápido para o DynamoDB — navegue pelas tabelas, execute consultas no estilo SQL e edite itens localmente.