首页 > 解决方案 > 在 AWS Lambda 中使用 boto3 扫描后修改项目属性

问题描述

目标是扫描并返回 DynamoDB 表中的所有项目,在返回响应之前,修改每个特定项目的特定属性。

我已经完成了这个,但我很想知道是否有一种更划算的方法,而无需遍历所有项目。

目前我正在返回对表的完整扫描并遍历每个列表项(发现它不是对象而是列表):

    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table('<table name>')

    response = table.scan()

    items = response['Items']

    for item in items:
        item['Thumbnail'] = 'https://s3.amazonaws.com/<s3bucket>/' + item['Thumbnail']

    return items

我怀疑该解决方案可以在不循环的情况下解决,但如果有一个避免循环的解决方案,我很想听到它!

标签: pythonamazon-web-servicesaws-lambdaamazon-dynamodbboto3

解决方案


更新项目的循环成本将以毫秒为单位。Dynamodb 扫描 + 网络延迟将花费更多时间。


推荐阅读