You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native搭配AWS后端实现DynamoDB与关联S3资源同步定时删除问询

适配过期时间变更的DynamoDB与S3同步删除方案

你可以直接用「EventBridge定时触发Lambda」的轻量方案实现需求,全程无复杂配置,完全适配expirationDate手动更新的场景,具体步骤如下:

  • 第一步:先关闭你当前配置的DynamoDB TTL自动删除规则,后续删除逻辑统一由Lambda执行
  • 第二步:创建一个Lambda处理函数,核心逻辑如下:
    1. 调用DynamoDB的查询接口,过滤出所有expirationDate值小于当前时间戳的记录
    2. 遍历符合条件的记录:
      • 若记录存在image字段,先从S3地址中解析出bucket名称和对象key,调用deleteObject接口删除对应的S3资源
      • 调用DynamoDB的删除接口清除本条记录
        极简Python版Lambda示例:
    import boto3
    import time
    
    # 替换为你实际的DynamoDB表名
    dynamodb = boto3.resource('dynamodb').Table('MyObject表名')
    s3 = boto3.client('s3')
    
    def lambda_handler(event, context):
        current_ts = int(time.time())
        # 查询所有已过期的记录
        res = dynamodb.scan(
            FilterExpression='expirationDate < :curr',
            ExpressionAttributeValues={':curr': current_ts}
        )
        for item in res['Items']:
            # 先删除关联的S3图片
            if item.get('image'):
                # 此处解析逻辑根据你实际存储的image地址格式调整,示例默认image格式为s3://bucket-name/object-key
                s3_path = item['image'].replace('s3://', '')
                bucket, key = s3_path.split('/', 1)
                s3.delete_object(Bucket=bucket, Key=key)
            # 再删除DynamoDB记录
            dynamodb.delete_item(Key={'id': item['id']})
    
  • 第三步:给Lambda配置对应的IAM权限,至少包含:
    • DynamoDB表的scan、deleteItem权限
    • 对应S3 bucket的deleteObject权限
    • Lambda基础运行权限(CloudWatch日志写入权限)
  • 第四步:配置EventBridge定时规则,触发频率根据你的业务需求设置即可,比如每天凌晨触发一次即可满足14天过期的粒度要求,触发目标选择你刚才创建的Lambda函数。

方案优势

  • 天然适配过期时间变更场景:用户手动更新expirationDate延长有效期后,只要更新后的时间戳大于当前时间,下次Lambda扫描时就不会命中该记录,无需额外做适配开发
  • 配置极简:全程仅涉及3个AWS服务,没有复杂的流处理、状态机等组件,后端经验少也能快速配置完成
  • 成本极低:EventBridge定时触发几乎无成本,Lambda每日调用一次、运行时长通常在百毫秒级,基本都在AWS免费额度覆盖范围内

如果你是用Amplify开发(你的Schema用了Amplify的@model等指令),可以直接用Amplify的定时函数能力,不用手动配置EventBridge,直接在项目中执行amplify add function选择定时触发类型,把上述逻辑写进去即可完成部署。

内容的提问来源于stack exchange,提问作者Jacki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:06:04