Convertisseur TTL DynamoDB
Décode une valeur TTL DynamoDB en une date lisible, ou convertis une date en secondes epoch à stocker — avec un avertissement quand une valeur ressemble à des millisecondes.
Heures affichées en UTC. Les suppressions TTL ont lieu dans les ~48 heures suivant l’expiration.
Comment fonctionne le TTL DynamoDB
Le Time to Live (TTL) permet à DynamoDB de faire expirer les items automatiquement sans coût supplémentaire. Tu désignes un attribut Number comme attribut TTL ; sa valeur est un timestamp epoch Unix en secondes. Un processus en arrière-plan compare le TTL de chaque item à l’heure actuelle et supprime les items dont l’heure est passée — généralement dans les 48 heures, au mieux.
Comme la valeur est en secondes, un timestamp en millisecondes est le bug TTL numéro un : une valeur issue de Date.now() en JavaScript est 1000× trop grande, si bien que l’expiration de l’item tombe dans un futur lointain et qu’il n’est jamais supprimé. Ce convertisseur détecte automatiquement l’unité et signale ce cas pour que tu le repères avant la mise en production.
Faire expirer les items automatiquement n’est qu’un aspect du dimensionnement d’une table — le guide TTL DynamoDB explique comment l’activer, remplir les valeurs rétroactivement et filtrer les items expirés des lectures.
Questions fréquentes
Quel format utilise un attribut TTL DynamoDB ?
Un attribut Time to Live (TTL) DynamoDB doit être un Number contenant un timestamp epoch Unix exprimé en secondes — le nombre de secondes depuis le 1970-01-01 UTC. DynamoDB compare cette valeur à l’heure actuelle et supprime l’item une fois qu’elle est dans le passé. Ce doit être des secondes, pas des millisecondes, et pas une chaîne de date ISO.
Pourquoi mon TTL DynamoDB ne supprime-t-il pas les items ?
La cause la plus fréquente est de stocker des millisecondes au lieu de secondes. Une valeur en millisecondes comme 1700000000000 lue comme des secondes correspond à une date des dizaines de milliers d’années dans le futur, si bien que l’item n’expire jamais. Divise par 1000. Vérifie aussi que le TTL est activé sur la table et pointé sur le bon attribut — les items sans valeur dans cet attribut n’expirent jamais.
Combien de temps après l’heure TTL DynamoDB supprime-t-il un item ?
DynamoDB supprime généralement les items expirés dans les quelques jours suivant l’heure d’expiration — AWS documente une fenêtre au mieux allant jusqu’à 48 heures, et plus longtemps en charge. Les items expirés peuvent encore apparaître dans les lectures, les Scan et les Query jusqu’à ce que le processus en arrière-plan les supprime, donc filtre sur l’attribut TTL si tu dois les masquer immédiatement.
L’heure TTL doit-elle être dans le futur ?
Non. Si tu écris une valeur TTL déjà dans le passé, l’item devient éligible à la suppression immédiatement et est supprimé au prochain balayage en arrière-plan. Régler le TTL sur les secondes epoch actuelles est une manière courante de programmer la suppression d’un item à court terme.