如何使用Python版Lambda函数将JSON对象写入S3的.json文件
Python Lambda 写入JSON字符串到S3实现方案
前置准备
- 给你的Lambda执行角色添加对应S3桶的
s3:PutObject权限,避免权限报错 - 确认目标S3桶和Lambda在同一AWS分区,跨分区访问需要额外配置网络规则
代码实现
Lambda的Python运行时默认内置boto3 SDK,无需额外打包依赖层,直接参考下方代码调整即可:
import json import boto3 # 初始化S3客户端 s3 = boto3.client('s3') def lambda_handler(event, context): # 你的原有业务逻辑 my_data = {"key": "value", "示例字段": "中文内容"} # 生成JSON字符串,加ensure_ascii=False避免中文乱码,indent=2优化可读性 x = json.dumps(my_data, ensure_ascii=False, indent=2) # 写入S3 s3.put_object( Bucket = "你的目标S3桶名", # 替换为实际桶名 Key = "存放路径/目标文件名.json", # 替换为实际存储路径,比如data/20240520/user_info.json Body = x, ContentType = "application/json" # 配置后S3会正确识别文件格式,浏览器访问直接预览而非下载 ) # 后续业务逻辑 return { "statusCode": 200, "body": "JSON文件上传S3成功" }
常见注意事项
- 如果JSON字符串体积超过100MB,建议使用分片上传接口避免Lambda执行超时
- 若需要自定义文件访问权限,可以在
put_object参数中添加ACL="public-read"(公开读)或其他对应权限配置 - 如果Lambda和S3桶不在同一区域,初始化S3客户端时指定区域即可:
s3 = boto3.client('s3', region_name='ap-northeast-1')
内容的提问来源于stack exchange,提问作者Debapratim Chakraborty
相关产品推荐
相关产品推荐

