Herramienta gratuita

Conversor de TTL de DynamoDB

Decodifica un valor TTL de DynamoDB a una fecha legible, o convierte una fecha en los segundos epoch que debes almacenar, con un aviso cuando un valor parece estar en milisegundos.

Marca de tiempo Unix

Un atributo TTL de DynamoDB almacena una hora Unix epoch en segundos. Pega un valor para decodificarlo, o elige una fecha abajo para obtener el número que debes almacenar.

Fecha y hora UTC

Tue, 14 Nov 2023 22:13:20 GMT

Segundos epoch (valor TTL)1700000000
Milisegundos epoch1700000000000
ISO 8601 (UTC)2023-11-14T22:13:20.000Z

Las horas se muestran en UTC. Las eliminaciones por TTL ocurren dentro de ~48 horas tras la caducidad.

Cómo funciona el TTL de DynamoDB

Time to Live (TTL) permite que DynamoDB haga caducar Items automáticamente sin coste adicional. Designas un atributo Number como atributo TTL; su valor es una marca de tiempo Unix epoch en segundos. Un proceso en segundo plano compara el TTL de cada Item con la hora actual y elimina los Items cuyo tiempo ha pasado, normalmente dentro de 48 horas, con carácter de mejor esfuerzo.

Como el valor está en segundos, una marca de tiempo en milisegundos es el error de TTL número uno: un valor de Date.now() de JavaScript es 1000× demasiado grande, así que la caducidad del Item cae en un futuro lejano y nunca se elimina. Este conversor detecta la unidad automáticamente y señala ese caso para que lo detectes antes de ponerlo en producción.

Hacer caducar Items automáticamente es una parte del dimensionamiento de una tabla: la guía de TTL de DynamoDB cubre cómo activarlo, rellenar valores retroactivamente y filtrar los Items caducados de las lecturas.

Preguntas frecuentes

¿Qué formato usa un atributo TTL de DynamoDB?

Un atributo Time to Live (TTL) de DynamoDB debe ser un Number que contenga una marca de tiempo Unix epoch expresada en segundos: el número de segundos desde 1970-01-01 UTC. DynamoDB compara ese valor con la hora actual y elimina el Item una vez que está en el pasado. Debe estar en segundos, no en milisegundos, y no ser una cadena de fecha ISO.

¿Por qué mi TTL de DynamoDB no elimina los Items?

La causa más común es almacenar milisegundos en lugar de segundos. Un valor en milisegundos como 1700000000000 leído como segundos es una fecha decenas de miles de años en el futuro, así que el Item nunca caduca. Divide entre 1000. Confirma también que el TTL está activado en la tabla y apunta al atributo correcto: los Items sin valor en ese atributo nunca caducan.

¿Cuánto tiempo después de la hora del TTL elimina DynamoDB un Item?

DynamoDB normalmente elimina los Items caducados en unos pocos días desde la hora de caducidad: AWS documenta una ventana de mejor esfuerzo de hasta 48 horas, y más bajo carga. Los Items caducados pueden seguir apareciendo en lecturas, Scans y Queries hasta que el proceso en segundo plano los elimine, así que filtra por el atributo TTL si necesitas ocultarlos de inmediato.

¿La hora del TTL tiene que estar en el futuro?

No. Si escribes un valor TTL que ya está en el pasado, el Item pasa a ser elegible para eliminación de inmediato y se elimina en el siguiente barrido en segundo plano. Establecer el TTL a los segundos epoch actuales es una forma habitual de programar un Item para su eliminación a corto plazo.

Trabaja con DynamoDB sin la Consola

DynoTable es un cliente de escritorio rápido para DynamoDB: explora tablas, ejecuta consultas estilo SQL y edita Items localmente.