我们正在尝试创建一个 AWS Lambda 函数,以创建一封包含 HTML 正文的电子邮件,以提醒团队有关已更改的记录。为了实现这一点,我们创建了一个带有Python的Lambda函数,该函数从事件的响应中捕获变量并传递到HTML。我下面的代码在从HTML到python的变量方面存在问题。你能帮我解决它吗?由于电子邮件输出只是HTML中提到的字符串。一般来说,我应该得到分配给它的变量。import boto3import jsonfrom datetime import datetimeimport smtplib import email.utilsfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextdef lambda_handler(event, context): #print(event) RecordInfo = event['Records'] RecordDetails = RecordInfo[0] EventName = RecordDetails['eventName'] Dyna = RecordDetails['dynamodb'] Modtime = Dyna['ApproximateCreationDateTime'] ModifiedTime=datetime.fromtimestamp(Modtime).strftime("%B %d, %Y %I:%M:%S") if (EventName == 'MODIFY'): OldData = Dyna['OldImage'] OldAppKey=OldData['Application'] OldApp=OldAppKey['S'] OldAppServerKey=OldData['App_Server'] OldAppServer=OldAppServerKey['S'] OldAppUserKey=OldData['App_User'] OldAppUser=OldAppUserKey['S'] OldAppIPKey=OldData['App_IP'] OldAppIP=OldAppIPKey['S'] OldAppPwdKey=OldData['App_Pwd'] OldAppPwd=OldAppPwdKey['S'] OldAppPortKey=OldData['App_Port'] OldAppPort=OldAppPortKey['S'] #If Eventname is 'Modify' then above inserted value of Sub will be overridden # The subject line of the email. SUBJECT = "Table Name:DBTest - Updated on " + ModifiedTime Message1 = Message1 + "\nOld Record Details:\n" + "Application:" + OldApp + "\tApp_IP:" + OldAppIP + "\tApp_User:" + OldAppUser + "\tApp_Pwd:" + OldAppPwd + "\tApp_Port:" + OldAppPort # The HTML body of the email.
1 回答

小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
看起来您希望使用如下所示的字符串来替换变量:
<td class="cell">{OldApp}</td>
要在 Python 3.6+ 中执行此操作,您应该使用 ,例如:f-string
BODY_HTML = f"...<td class="cell">{OldApp}</td>..."
请注意开头的引号,它告诉 Python 替换 中包含的表达式。f{curly brackets}
此外,该语句不应位于此变量赋值中:print()
BODY_HTML = BODY_HTML + print ("...
另外一些提示.
您可以缩短此时间:
RecordInfo = event['Records']
RecordDetails = RecordInfo[0]
EventName = RecordDetails['eventName']
到:
EventName = event['Records'][0]['eventName']
同样,您可以缩短:
OldAppIPKey=OldData['App_IP']
OldAppIP=OldAppIPKey['S']
到:
OldAppIP=OldData['App_IP']['S']
添加回答
举报
0/150
提交
取消