Conversor de TTL do DynamoDB
Decodifique um valor de TTL do DynamoDB para uma data legível ou transforme uma data nos segundos epoch a armazenar — com um aviso quando um valor parecer estar em milissegundos.
Horários exibidos em UTC. As exclusões por TTL ocorrem dentro de ~48 horas após a expiração.
Como o TTL do DynamoDB funciona
O Time to Live (TTL) permite que o DynamoDB expire itens automaticamente sem custo adicional. Você designa um atributo Number como o atributo TTL; seu valor é um timestamp Unix epoch em segundos. Um processo em segundo plano compara o TTL de cada item com o horário atual e exclui os itens cujo tempo já passou — normalmente dentro de 48 horas, com base no melhor esforço.
Como o valor é em segundos, um timestamp em milissegundos é o bug número um do TTL: um valor do Date.now() do JavaScript é 1000× grande demais, então a expiração do item cai num futuro distante e ele nunca é removido. Este conversor detecta automaticamente a unidade e sinaliza esse caso para você identificá-lo antes de ir para produção.
Expirar itens automaticamente é uma parte do dimensionamento de uma tabela — o guia de TTL do DynamoDB cobre como habilitá-lo, preencher valores retroativamente e filtrar itens expirados das leituras.
Perguntas frequentes
Qual formato um atributo TTL do DynamoDB usa?
Um atributo Time to Live (TTL) do DynamoDB precisa ser um Number contendo um timestamp Unix epoch expresso em segundos — o número de segundos desde 1970-01-01 UTC. O DynamoDB compara esse valor com o horário atual e exclui o item assim que ele estiver no passado. Precisa ser em segundos, não em milissegundos, e não uma string de data ISO.
Por que meu TTL do DynamoDB não está excluindo itens?
A causa mais comum é armazenar milissegundos em vez de segundos. Um valor em milissegundos como 1700000000000 lido como segundos é uma data dezenas de milhares de anos no futuro, então o item nunca expira. Divida por 1000. Confirme também que o TTL está habilitado na tabela e apontado para o atributo correto — itens sem valor nesse atributo nunca expiram.
Quanto tempo após o horário do TTL o DynamoDB exclui um item?
O DynamoDB normalmente exclui itens expirados dentro de alguns dias após o horário de expiração — a AWS documenta uma janela de melhor esforço de até 48 horas, e mais sob carga. Itens expirados ainda podem aparecer em leituras, Scans e Queries até que o processo em segundo plano os remova, então filtre pelo atributo TTL se precisar ocultá-los imediatamente.
O horário do TTL precisa estar no futuro?
Não. Se você gravar um valor de TTL que já está no passado, o item se torna elegível para exclusão imediatamente e é removido na próxima varredura em segundo plano. Definir o TTL para os segundos epoch atuais é uma forma comum de agendar um item para exclusão em curto prazo.