我试图从S3桶中读取一个文件,在io.BufferedReader中获得该文件,并通过lambda函数返回,随后将解码为JSON。 我得到的错误信息是
无法处理响应。BufferedReader类型的对象不是JSON可序列化的。
我的代码如下。
s3 = boto3.client('s3')
def lambda_handler(event, context):
bucket = "bucketID"
body = []
for record in event['key']:
with open('/tmp/2021-10-11T06:23:29:691472.pdf', 'wb') as f:
s3.download_fileobj(bucket, "basedir/file.pdf", f)
f = open("/tmp/2021-10-11T06:23:29:691472.pdf", "rb")
body.append(f)
return {
"statusCode": 200,
"file":f,
"content":f.read()
来自lambda的错误响应
Response
"errorMessage": "Unable to marshal response: Object of type BufferedReader is not JSON serializable",
"errorType": "Runtime.MarshalError",
"requestId": "10aea120-kyc-jpk-bnce-7123eTyda64",
"stackTrace": []
我正在使用AWS-Lambda Python函数