用于从迪纳摩DB事件的响应中以 HTML 格式发送电子邮件正文的 AWS

我们正在尝试创建一个 AWS Lambda 函数,以创建一封包含 HTML 正文的电子邮件,以提醒团队有关已更改的记录。


为了实现这一点,我们创建了一个带有Python的Lambda函数,该函数从事件的响应中捕获变量并传递到HTML。我下面的代码在从HTML到python的变量方面存在问题。你能帮我解决它吗?


由于电子邮件输出只是HTML中提到的字符串。一般来说,我应该得到分配给它的变量。


import boto3

import json

from datetime import datetime

import smtplib  

import email.utils

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText



def 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.


慕哥6287543
浏览 79回答 1
1回答

小怪兽爱吃肉

看起来您希望使用如下所示的字符串来替换变量:<td class="cell">{OldApp}</td>要在 Python 3.6+ 中执行此操作,您应该使用 ,例如:f-stringBODY_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']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java