python - 在 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
我怀疑该解决方案可以在不循环的情况下解决,但如果有一个避免循环的解决方案,我很想听到它!
解决方案
更新项目的循环成本将以毫秒为单位。Dynamodb 扫描 + 网络延迟将花费更多时间。
推荐阅读
- javascript - Javascript 文件未与 HTML 一起加载
- google-sheets - 如何使用 VLOOKUP 返回 2 个单元格?
- javascript - 在 JavaScript 快捷方式中调用函数时检查 null 吗?
- swift - OpenSSL RSA 公钥摘要
- c# - 如何从我的数据库中获取用户 ID 并使用 ASP.NET Core MVC 显示它
- reactjs - Reactjs 中的 useReducer 未从 REST API 获取数据
- php - Laravel paginate(10) 不适用于第二页
- python - 我怎样才能从这个网站上刮掉 JSON 文件?
- python - python 2.7.17 中的“ImportError: No module named”
- python - VSCode 中的 Python 错误:抱歉,激活 Python 的 IntelliCode 支持时出现问题