🗂
DynamoDB テーブルの TTL 機能と Lambda 関数による削除アイテム処理の設定
Amazon DynamoDBのTime To Live(TTL)機能を活用すると、アイテムの有効期限を設定し、自動的に削除できます。さらに、DynamoDBストリームとAWS Lambda関数を連携させることで、削除されたアイテムを処理することが可能です。DynamoDB テーブルのexpireDate
属性でTTLを有効にし、削除アイテムを処理するためのLambda関数を設定する手順を紹介します。
1,DynamoDB テーブルにTTLを設定
まず、DynamoDBテーブルのTTL機能を有効にし、expireDate
属性を指定します。
aws dynamodb update-time-to-live \
--table-name YourTableName \
--time-to-live-specification Enabled=true, AttributeName=expireDate
2,DynamoDB ストリームを有効化
次に、DynamoDBテーブルのストリームを有効にします。これにより、アイテムの変更イベントをキャプチャできます。
aws dynamodb update-table \
--table-name YourTableName \
--stream-specification StreamEnabled=true, StreamViewType=NEW_AND_OLD_IMAGES
3,Lambda関数を作成
削除されたアイテムを処理する Lambda 関数を作成します。以下は Pythonでの例です。
import json
def lambda_handler(event, context):
for record in event['Records']:
if record['eventName'] == 'REMOVE':
# 削除されたアイテムの処理ロジックをここに記述
この関数を AWS Lambdaコンソールで作成し、適切なロールをアタッチします。
4,DynamoDBトリガーを設定
最後に、Lambda関数のトリガーとしてDynamoDBストリームを設定します。AWS Management Console を使用して、Lambda 関数に DynamoDBストリームをトリガーとして追加します。
まとめ
DynamoDBテーブルのexpireDate
属性でTTLを有効にし、削除されたアイテムを処理するための Lambda関数を設定する手順を紹介しました。TTL機能とDynamoDBストリームを活用することで、アイテムの自動削除とその後の処理を簡素化できます。これにより、手動でアイテムを管理する手間を省き、効率的にアプリケーションを運用できます。
Discussion