Convertitore TTL di DynamoDB
Decodifica un valore TTL di DynamoDB in una data leggibile, oppure trasforma una data nei secondi epoch da memorizzare — con un avviso quando un valore sembra essere in millisecondi.
Orari mostrati in UTC. Le eliminazioni TTL avvengono entro ~48 ore dalla scadenza.
Come funziona il TTL di DynamoDB
Il Time to Live (TTL) permette a DynamoDB di far scadere gli Item automaticamente senza costi aggiuntivi. Designi un attributo Number come attributo TTL; il suo valore è un timestamp Unix epoch in secondi. Un processo in background confronta il TTL di ogni Item con l'ora corrente ed elimina gli Item la cui ora è passata — in genere entro 48 ore, con approccio best-effort.
Poiché il valore è in secondi, un timestamp in millisecondi è il bug TTL numero uno: un valore da Date.now() di JavaScript è 1000 volte troppo grande, quindi la scadenza dell'Item finisce in un futuro lontano e non viene mai rimosso. Questo convertitore rileva automaticamente l'unità e segnala quel caso così lo individui prima di rilasciarlo.
Far scadere gli Item automaticamente è una parte del dimensionamento di una tabella — la guida al TTL di DynamoDB spiega come abilitarlo, popolare i valori a posteriori e filtrare gli Item scaduti dalle letture.
Domande frequenti
Quale formato usa un attributo TTL di DynamoDB?
Un attributo Time to Live (TTL) di DynamoDB deve essere un Number contenente un timestamp Unix epoch espresso in secondi — il numero di secondi dal 1970-01-01 UTC. DynamoDB confronta quel valore con l'ora corrente ed elimina l'Item una volta che è nel passato. Deve essere in secondi, non in millisecondi, e non una stringa di data ISO.
Perché il mio TTL di DynamoDB non elimina gli Item?
La causa più comune è memorizzare i millisecondi anziché i secondi. Un valore in millisecondi come 1700000000000 letto come secondi è una data decine di migliaia di anni nel futuro, così l'Item non scade mai. Dividi per 1000. Verifica inoltre che il TTL sia abilitato sulla tabella e puntato all'attributo corretto — gli Item senza valore in quell'attributo non scadono mai.
Quanto tempo dopo l'ora del TTL DynamoDB elimina un Item?
DynamoDB elimina in genere gli Item scaduti entro pochi giorni dall'ora di scadenza — AWS documenta una finestra best-effort fino a 48 ore, e più lunga sotto carico. Gli Item scaduti possono ancora comparire in letture, Scan e Query finché il processo in background non li rimuove, quindi filtra sull'attributo TTL se hai bisogno di nasconderli immediatamente.
L'ora del TTL deve essere nel futuro?
No. Se scrivi un valore TTL già nel passato, l'Item diventa immediatamente idoneo all'eliminazione e viene rimosso alla successiva scansione in background. Impostare il TTL ai secondi epoch correnti è un modo comune per programmare l'eliminazione a breve termine di un Item.