如何使用lambda(python)从CloudWatch警报中获取特定值?

2024-09-30 18:17:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过使用cloudwatchsnslambda(python)-SNS电子邮件监视EC2。在

当我测试python代码时,我发现CW alarm“Message”包含转义处理,我无法从“Message”中获取特定值。在

我用下面的代码检查警报的格式。在

from __future__ import print_function
import json
import boto3

def lambda_handler(event, context):
    subject = 'subject'
    Messagebody = event['Records'][0]['Sns']['Message']
    MY_SNS_TOPIC_ARN = 'XXXXXXXXXXXXXXXXXXXXXXXX'
    sns_client = boto3.client('sns')
    sns_client.publish(
        TopicArn = MY_SNS_TOPIC_ARN,
        Subject = subject,
        Message = Messagebody
   )

发现“消息”包含转义处理。在

^{pr2}$

我想通过使用

^{pr3}之类的方法来获得值$ 如何使用python实现这一点?

Tags: 代码importclienteventmessagetopic电子邮件my
2条回答

要删除转义处理,应执行以下操作:

MessageBody = event['Records'][0]['Sns']['Message']

MessageBody = json.loads(MessageBody)

然后,要访问度量名称,可以执行以下操作:

MetricName= event['Records'][0]['Sns']['Message']['Trigger']['MetricName']

Message是一个JSON字符串。您需要先将其转换为Python字典。然后,您可以轻松地访问它的属性。在

Messagebody = event['Records'][0]['Sns']['Message']
message_dict = json.loads(Messagebody)
metric_name = message_dict['Trigger']['MetricName']

相关问题 更多 >