Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Activation de la durée de vie (TTL) dans DynamoDB
Note
Pour faciliter le débogage et la vérification de la fonctionnalité TTL, les valeurs fournies pour la TTL de l’élément sont journalisées en texte brut dans les journaux de diagnostic DynamoDB.
Vous pouvez activer la TTL dans la console Amazon DynamoDB, dans l’AWS Command Line Interface (AWS CLI) ou en utilisant la Référence de l’API Amazon DynamoDB avec l’un des kits AWS SDK prévus. L’activation de la durée de vie (TTL) sur toutes les partitions prend environ une heure.
Connectez-vous à l’AWS Management Console et ouvrez la console DynamoDB à l’adresse https://console.aws.amazon.com/dynamodb/
. -
Choisissez Tables, puis choisissez la table à modifier.
-
Dans l’onglet Paramètres supplémentaires, dans la section Durée de vie (TTL), choisissez Activer.
-
Lorsque vous activez TTL sur une table, vous devez identifier un nom d’attribut spécifique que le service DynamoDB recherchera pour déterminer si un élément peut faire l’objet d’une expiration. Le nom de l’attribut TTL, illustré ci-dessous, distingue les majuscules et minuscules et doit correspondre à l’attribut défini dans vos opérations de lecture et d’écriture. En cas de non-concordance, les éléments ayant expiré ne seront pas supprimés. Pour renommer l’attribut TTL, vous devez le désactiver, puis le réactiver avec le nouveau nom. La TTL continue à traiter les suppressions pendant environ 30 minutes après sa désactivation. Elle doit être reconfigurée sur les tables restaurées.
-
(Facultatif) Vous pouvez effectuer un test en simulant la date et l’heure de l’expiration et en faisant correspondre quelques éléments. Cela vous fournit un exemple de liste d’éléments et confirme qu’il existe des éléments contenant le nom d’attribut TTL fourni avec la date d’expiration.
Une fois que la TTL est activée, l’attribut TTL est marqué TTL lorsque vous affichez les éléments dans la console DynamoDB. Vous pouvez afficher la date et l’heure d’expiration d’un élément en faisant passer votre souris au-dessus de l’attribut.
-
Active TTL sur la table
TTLExample.aws dynamodb update-time-to-live --table-name TTLExample --time-to-live-specification "Enabled=true, AttributeName=ttl" -
Décrit TTL sur la table
TTLExample.aws dynamodb describe-time-to-live --table-name TTLExample { "TimeToLiveDescription": { "AttributeName": "ttl", "TimeToLiveStatus": "ENABLED" } } -
Ajoutez un élément à la table
TTLExampleavec l’attribut de TTL défini à l’aide du shell BASH et de l’AWS CLI.EXP=`date -d '+5 days' +%s` aws dynamodb put-item --table-name "TTLExample" --item '{"id": {"N": "1"}, "ttl": {"N": "'$EXP'"}}'
Cet exemple démarre par la date actuelle à laquelle cinq jours sont ajoutés pour créer une date d’expiration. Il a ensuite converti l’heure d’expiration en heure au format epoch pour ajouter en dernier lieu un élément à la table « TTLExample ».
Note
Pour définir des valeurs d’expiration pour TTL, l’une des méthodes à votre disposition consiste à calculer le nombre de secondes à ajouter à l’heure d’expiration. Par exemple, 5 jours équivalent à 432 000 secondes. Toutefois, il est souvent préférable de commencer par une date et de définir le reste en fonction de celle-ci.
Il est relativement simple d’obtenir l’heure actuelle au format epoch, comme dans l’exemple suivant.
-
Terminal Linux :
date +%s -
Python:
import time; int(time.time()) -
Java:
System.currentTimeMillis() / 1000L -
JavaScript:
Math.floor(Date.now() / 1000)
AWSTemplateFormatVersion: "2010-09-09" Resources: TTLExampleTable: Type: AWS::DynamoDB::Table Description: "A DynamoDB table with TTL Specification enabled" Properties: AttributeDefinitions: - AttributeName: "Album" AttributeType: "S" - AttributeName: "Artist" AttributeType: "S" KeySchema: - AttributeName: "Album" KeyType: "HASH" - AttributeName: "Artist" KeyType: "RANGE" ProvisionedThroughput: ReadCapacityUnits: "5" WriteCapacityUnits: "5" TimeToLiveSpecification: AttributeName: "TTLExampleAttribute" Enabled: true
Pour plus d’informations sur l’utilisation de la TTL dans vos modèles CloudFormation, cliquez ici.