DynamoDB ItemCollectionSizeLimitExceededException
TL;DR — Somente tabelas com Índice Secundário Local (LSI) têm este limite: todos os itens que compartilham uma chave de partição (a "coleção de itens") podem totalizar no máximo 10 GB. Uma das suas chaves de partição cruzou. Redesenhe para que nenhuma chave de partição acumule dados ilimitados — ou elimine o LSI.
O que significa
ItemCollectionSizeLimitExceededException: Collection size exceeded.Uma coleção de itens é cada item com o mesmo valor de chave de partição — na tabela base e em todos os seus LSIs. Tabelas sem um LSI não têm limite de tamanho por coleção (o tamanho geral de uma tabela é irrestrito). Tabelas com um limite LSI de cada coleção em 10 GB, e esse erro significa que uma gravação empurraria uma coleção além dela. O limite não se aplica a índices secundários globais.
Ele retorna como HTTP 400 e o AWS lista como OK para tentar novamente - mas uma nova tentativa só é bem-sucedida quando a coleção diminui para menos de 10 GB. Leituras e escritas que reduzem o tamanho da coleção (exclusões, remoção ou corte de atributos) ainda são permitidas, para que você possa encontrar uma saída.
Por que isso acontece
- Uma chave de partição hot/unbounded — uma chave (um grande inquilino, um usuário popular) acumula muito mais itens do que outras.
- Um LSI que você pode não precisar — o limite de 10 GB existe apenas porque a tabela tem um LSI.
- Crescimento somente de acréscimos em uma única chave de partição ao longo do tempo.
Como corrigir
- Fragmentar novamente a chave de partição. Divida a entidade superdimensionada em várias chaves de partição (por exemplo,
TENANT#42#1,TENANT#42#2) para que nenhuma coleção única cresça ilimitadamente. - Substitua o LSI por um GSI. Os GSIs têm sua própria chave de partição e não limite de tamanho de coleção de itens — para a maioria dos padrões de acesso, um GSI é a melhor escolha de qualquer maneira (e pode ser adicionado ao /removed após a criação da tabela, ao contrário de um LSI).
- Arquive itens frios da coleção quente (em uma tabela separada ou S3).
- Monitore o tamanho da coleção antes de bater na parede.
ReturnItemCollectionMetrics: SIZEem escritas retorna o tamanho estimado da coleção para que você possa alertar antes que as escritas falhem.
Detecte no DynoTable
Descubra quais chaves de partição carregam mais itens antes que uma coleção atinja 10 GB — abra a tabela com ⌘K, classifique por chave de partição e procure chaves com listas de itens excepcionalmente longas. A calculadora de tamanho de item ajuda a estimar o crescimento por item quando você planeja um novo fragmento.
Use a calculadora de preços para comparar a amplificação de gravação LSI com uma alternativa GSI. Alternar perfis com ⌘P; configure-os em Configurações → Perfis. Consulte Conectar ao AWS e Instalar.
Fontes
- Índices secundários locais (verificado em 13/07/2026)
- Tratamento de erros com DynamoDB (verificado em 13/07/2026)
Erros relacionados
- O tamanho do item excedeu o tamanho máximo permitido — o limite de 400 KB por item.
- ProvisionedThroughputExceededException
- Aprenda: GSI vs LSI · Coleções de itens
Referências
- Tratamento de erros com DynamoDB — Guia do desenvolvedor do Amazon DynamoDB
- Índices secundários locais — Guia do desenvolvedor do Amazon DynamoDB
- Cotas no Amazon DynamoDB — Guia do desenvolvedor do Amazon DynamoDB
Última verificação em 13/07/2026 em relação à documentação oficial do AWS vinculada acima.