python - 在 Lambda 中使用 Python 创建新文件、写入文件并上传到 S3
问题描述
我正在尝试在 AWS Lambda 中使用 Python 创建一个新文件并写入它,然后上传到 S3 存储桶。我希望每个文件名都基于一个变量是唯一的。在这种情况下,它是submission_id。
import json
import sys
import logging
import boto3
client = boto3.client('s3')
解析来自 webhook API 调用的数据(一切正常)
def lambda_handler(event, context):
form_data = json.loads(event['body'])
form_id = (form_data['FormID'])
submission_id = (form_data['UniqueID'])
使用结果创建新文件并上传到 S3。
想要使用 submit_id 作为文件名变量。
data_file = open('/tmp/submission_id' + '.txt', 'w+')
data_file.write(str(form_data))
data_file.close()
将文件上传到 S3 存储桶
client.upload_file('/tmp/submission_id', 'mb-sentiment' , 'data_file')
我收到的错误如下。
[错误] FileNotFoundError:[Errno 2] 没有这样的文件或目录:'/tmp/submission_id' Traceback(最近一次调用):文件“/var/task/lambda_function.py”,第 24 行,在 lambda_handler client.upload_file( '/tmp/submission_id', 'mb-sentiment' , 'data_file')
有人知道我如何准确地编码吗?这似乎没有什么困难,但我是一个新手。检查了其他一些帖子,但似乎都没有解决这个特定的用例。
谢谢!
解决方案
在我看来,你应该.txt
在最后:
client.upload_file('/tmp/submission_id.txt', 'mb-sentiment' , 'data_file')
推荐阅读
- loadrunner - 如何在 LR 中将参数数组的值作为项目数据传递
- ruby - 使用 (gets.chomp) 输入字符串并生成直方图
- php - PHP - 如何修复 date_format() 错误“给定的布尔值,而不是 DateTimeInterface”?
- php - 在 PHP 问题中显示乌尔都语
- wpf - FrameworkPropertyMetadata.DefaultUpdateSourceTrigger 没有设置默认值?
- angularjs - AngularJS 1.7.5 - 对象不支持 IE9 中的属性或方法“附加”
- python - 减少 Python 搁板大小
- django - 单页设计 - 在链接点击时加载新内容
- c# - 反序列化对象结果后有额外的括号
- powershell - 在 Powershell 中使用拖放参数运行批处理