🗂

DynamoDB テーブルの TTL 機能と Lambda 関数による削除アイテム処理の設定

2024/12/09に公開

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