DynamoDBの生存時間(TTL)を1時間に設定

AWS

 いや、2時間でも1日でも1年でもいいのですが、現時点からの相対時間で、過ぎた項目を削除したいです。

 この件、絶対時間だとか、項目単位じゃなくてテーブル単位だとか誤情報が見られましたので、正しい情報をお知らせします。

まず、テーブルを指定します。右側に「追加の設定」タブがあって押します。下にスクロールすると「Time to Live(TTL)」の欄があります。「オンにする」ボタンがあるので押してください。すでにオンにして悩んでる方、押して一度オフにして、1時間待ってオンにしてください。

 はい、設定画面がでました。そのままだと、エポック時間の値になってます。これが絶対値です。「次の60分」にすると相対60分になります。そして、右下の「TTLをオンにする」ボタンを押す。シミュレートされた日付と時間とかかいてあるので、「設定」と思わず「表示」と勘違いしてしまいましたが、ここで設定時間を設定します(進次郎構文)

 そして、Lambda@Edgeなどで、クッキーをクライアントに書き込みます。DynamoDBのテーブルに項目が表示され、60分+10分程度で削除されるのがわかります。私は何度かやって確認しました。

 ここで注意したいのは削除されるのはテーブルの内容まるごとではなく、終了時間を経過した(ここでは60分)項目だけが削除されるということです。安心ですね。

 ちなみにクライアント側のクッキーは変数なので、削除されませんが上書きされるので1個です。クッキーを増やす仕様でなければ削除する必要はないと思います。

以上、悩んだのでどなたかのお力になれば。

コメント

タイトルとURLをコピーしました