我想读取一个由s3事件触发的csv文件,换句话说,当csv文件上传到s3时,我的lambda函数将读取这个文件并发送包含信息和内容的电子邮件。我的代码在没有读取csv文件的情况下工作得很好,但是每当我把读取部分放在那里,我就无法接收邮件。 我使用的是serverless framework v--1.22.0**和**Python2.7。
这是我的代码:
def csvfile(event, context):
s3 = boto3.client('s3')
email_from = '****@****.com'
email_to = '****@*****.com'
email_subject = 'new file is uploaded'
for record in event['Records']:
filename = record['s3']['object']['key']
filesize = record['s3']['object']['size']
source = record['requestParameters']['sourceIPAddress']
eventTime = record['eventTime']
with open(str(filename), 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter='|')
for row in spamreader:
print row
email_body = "File Name :" + filename + "\n" + "File Size :" +
str(filesize) + "\n" + "Upload Time :" + eventTime + "\n" + "User
Details :" + source + "\n" + "content of the csv file :" + row
ses = boto3.client('ses')
ses.send_email(Source = email_from,
Destination = {'ToAddresses': [email_to,],},
Message = {'Subject': {'Data': email_subject}, 'Body':
{'Text' : {'Data': email_body}}}
)
print('Function execution Completed !!!')
这是我的无服务器.yml文件:
^{pr2}$
目前没有回答
相关问题 更多 >
编程相关推荐