【发布时间】:2021-05-18 19:22:19
【问题描述】:
您好,我正在尝试使用 lambda 函数从 dynamoDB 生成 CSV 到 S3。问题是我只是在 s3 上得到一个空文件。请您帮忙!
import csv
import boto3
import json
dynamodb = boto3.resource('dynamodb')
db = dynamodb.Table('ReporteTelefonica')
def lambda_handler(event, context):
AWS_BUCKET_NAME = 'reportetelefonica'
s3 = boto3.resource('s3')
bucket = s3.Bucket(AWS_BUCKET_NAME)
path = 'test.csv'
try:
response = db.scan()
myFile = open(path, 'w')
for i in response['Items']:
csv.register_dialect('myDialect', delimiter=',', quoting=csv.QUOTE_NONE)
with myFile:
writer = csv.writer(myFile, dialect='myDialect')
writer.writerows(i)
print(i)
except :
print("error")
bucket.put_object(
ACL='public-read-write',
ContentType='application/csv',
Key=path,
# Body=json.dumps(i),
)
# print("here")
body = {
"uploaded": "true",
"bucket": AWS_BUCKET_NAME,
"path": path,
}
# print("then here")
return {
"statusCode": 200,
"body": json.dumps(body)
}
我对此有点菜鸟,所以我想知道我应该修改什么才能成功完成对表的完整扫描并将值写入 S3 的 CSV 上???
【问题讨论】:
标签: python amazon-web-services amazon-s3 aws-lambda amazon-dynamodb