Aktifkan waktu untuk hidup (TTL) - Amazon DynamoDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Aktifkan waktu untuk hidup (TTL)

Anda dapat mengaktifkan TTL di Amazon DynamoDB Console AWS Command Line Interface , (),AWS CLI atau menggunakan Referensi Amazon DynamoDB API dengan SDK mana pun yang seharusnya. AWS Dibutuhkan sekitar satu jam untuk mengaktifkan TTL di semua partisi.

  1. Masuk ke AWS Management Console dan buka konsol DynamoDB di https://console.aws.amazon.com/dynamodb/.

  2. Pilih Tabel, lalu pilih tabel yang ingin Anda ubah.

  3. Di tab Pengaturan tambahan, di bagian Time to Live (TTL), pilih Aktifkan untuk mengaktifkan TTL.

  4. Saat mengaktifkan TTL pada tabel, DynamoDB mengharuskan Anda mengidentifikasi nama atribut tertentu yang akan dicari layanan saat menentukan apakah suatu item memenuhi syarat untuk kedaluwarsa. Nama atribut TTL, yang ditunjukkan di bawah ini, peka huruf besar/kecil dan harus cocok dengan atribut yang ditentukan dalam operasi baca dan tulis Anda. Ketidakcocokan akan menyebabkan item yang kedaluwarsa tidak dihapus. Mengganti nama atribut TTL mengharuskan Anda untuk menonaktifkan TTL dan kemudian mengaktifkannya kembali dengan atribut baru di masa mendatang. TTL akan terus memproses penghapusan selama kurang lebih 30 menit setelah dinonaktifkan. TTL harus dikonfigurasi ulang pada tabel yang dipulihkan.

    Nama atribut TTL case-sensitive yang DynamoDB gunakan untuk menentukan kelayakan item untuk kedaluwarsa.
  5. (Opsional) Anda dapat melakukan tes dengan mensimulasikan tanggal dan waktu kedaluwarsa dan mencocokkan beberapa item. Ini memberi Anda daftar sampel item dan mengonfirmasi bahwa ada item yang berisi nama atribut TTL yang disediakan bersama dengan waktu kedaluwarsa.

Setelah TTL diaktifkan, atribut TTL ditandai TTL saat Anda melihat item di konsol DynamoDB. Anda dapat melihat tanggal dan waktu kedaluwarsa suatu item dengan mengarahkan kursor ke atribut tersebut.

Python

Anda dapat mengaktifkan TTL dengan kode, menggunakan UpdateTimeToLiveoperasi.

import boto3 def enable_ttl(table_name, ttl_attribute_name): """ Enables TTL on DynamoDB table for a given attribute name on success, returns a status code of 200 on error, throws an exception :param table_name: Name of the DynamoDB table :param ttl_attribute_name: The name of the TTL attribute being provided to the table. """ try: dynamodb = boto3.client('dynamodb') # Enable TTL on an existing DynamoDB table response = dynamodb.update_time_to_live( TableName=table_name, TimeToLiveSpecification={ 'Enabled': True, 'AttributeName': ttl_attribute_name } ) # In the returned response, check for a successful status code. if response['ResponseMetadata']['HTTPStatusCode'] == 200: print("TTL has been enabled successfully.") else: print(f"Failed to enable TTL, status code {response['ResponseMetadata']['HTTPStatusCode']}") except Exception as ex: print("Couldn't enable TTL in table %s. Here's why: %s" % (table_name, ex)) raise # your values enable_ttl('your-table-name', 'expirationDate')

Anda dapat mengonfirmasi TTL diaktifkan dengan menggunakan DescribeTimeToLiveoperasi, yang menggambarkan status TTL di atas meja. TimeToLiveStatusnya adalah salah satu ENABLED atauDISABLED.

# create a DynamoDB client dynamodb = boto3.client('dynamodb') # set the table name table_name = 'YourTable' # describe TTL response = dynamodb.describe_time_to_live(TableName=table_name)
JavaScript

Anda dapat mengaktifkan TTL dengan kode, menggunakan UpdateTimeToLiveCommandoperasi.

import { DynamoDBClient, UpdateTimeToLiveCommand } from "@aws-sdk/client-dynamodb"; const enableTTL = async (tableName, ttlAttribute) => { const client = new DynamoDBClient({}); const params = { TableName: tableName, TimeToLiveSpecification: { Enabled: true, AttributeName: ttlAttribute } }; try { const response = await client.send(new UpdateTimeToLiveCommand(params)); if (response.$metadata.httpStatusCode === 200) { console.log(`TTL enabled successfully for table ${tableName}, using attribute name ${ttlAttribute}.`); } else { console.log(`Failed to enable TTL for table ${tableName}, response object: ${response}`); } return response; } catch (e) { console.error(`Error enabling TTL: ${e}`); throw e; } }; // call with your own values enableTTL('ExampleTable', 'exampleTtlAttribute');
  1. Aktifkan TTL pada tabel TTLExample.

    aws dynamodb update-time-to-live --table-name TTLExample --time-to-live-specification "Enabled=true, AttributeName=ttl"
  2. Jelaskan TTL pada tabel TTLExample.

    aws dynamodb describe-time-to-live --table-name TTLExample { "TimeToLiveDescription": { "AttributeName": "ttl", "TimeToLiveStatus": "ENABLED" } }
  3. Tambahkan item ke tabel TTLExample dengan atribut Waktu untuk Tayang yang diatur menggunakan shell BASH dan AWS CLI.

    EXP=`date -d '+5 days' +%s` aws dynamodb put-item --table-name "TTLExample" --item '{"id": {"N": "1"}, "ttl": {"N": "'$EXP'"}}'

Contoh ini dimulai dengan tanggal saat ini dan menambahkan 5 hari untuk membuat waktu kedaluwarsa. Kemudian, contoh ini mengubah waktu kedaluwarsa menjadi format jangka waktu yang pada akhirnya menambahkan item ke "TTLExample".

catatan

Salah satu cara untuk menetapkan nilai kedaluwarsa Waktu untuk Tayang adalah dengan menghitung jumlah detik yang ditambahkan ke waktu kedaluwarsa. Misalnya, 5 hari adalah 432.000 detik. Namun, seringkali lebih baik memulai dengan suatu tanggal dan bekerja dari sana.

Cukup mudah untuk mendapatkan waktu saat ini dalam format jangka waktu, seperti pada contoh berikut.

  • Terminal Linux: date +%s

  • Python: import time; int(time.time())

  • Java: System.currentTimeMillis() / 1000L

  • JavaScript: Math.floor(Date.now() / 1000)

  1. Aktifkan TTL pada tabel TTLExample.

    aws dynamodb update-time-to-live --table-name TTLExample --time-to-live-specification "Enabled=true, AttributeName=ttl"
  2. Jelaskan TTL pada tabel TTLExample.

    aws dynamodb describe-time-to-live --table-name TTLExample { "TimeToLiveDescription": { "AttributeName": "ttl", "TimeToLiveStatus": "ENABLED" } }
  3. Tambahkan item ke tabel TTLExample dengan atribut Waktu untuk Tayang yang diatur menggunakan shell BASH dan AWS CLI.

    EXP=`date -d '+5 days' +%s` aws dynamodb put-item --table-name "TTLExample" --item '{"id": {"N": "1"}, "ttl": {"N": "'$EXP'"}}'

Contoh ini dimulai dengan tanggal saat ini dan menambahkan 5 hari untuk membuat waktu kedaluwarsa. Kemudian, contoh ini mengubah waktu kedaluwarsa menjadi format jangka waktu yang pada akhirnya menambahkan item ke "TTLExample".

catatan

Salah satu cara untuk menetapkan nilai kedaluwarsa Waktu untuk Tayang adalah dengan menghitung jumlah detik yang ditambahkan ke waktu kedaluwarsa. Misalnya, 5 hari adalah 432.000 detik. Namun, seringkali lebih baik memulai dengan suatu tanggal dan bekerja dari sana.

Cukup mudah untuk mendapatkan waktu saat ini dalam format jangka waktu, seperti pada contoh berikut.

  • Terminal Linux: date +%s

  • Python: import time; int(time.time())

  • Java: System.currentTimeMillis() / 1000L

  • JavaScript: Math.floor(Date.now() / 1000)