<p>这是“AlarmName”属性位于json字符串中的结果。您需要首先解析该属性,以便可以访问该属性</p>
<p>使用<code>json.parse</code>函数检索报警名称,如下面的示例Lambda函数</p>
<pre><code>import boto3
import json
def lambda_handler(event, context):
message = event['Records'][0]['Sns']['Message']
message = json.loads(message)
alarm_name = message["AlarmName"]
print(alarm_name)
</code></pre>
<p>我在Lambda中使用下面的事件测试了这一点</p>
<pre><code>{
"Records": [
{
"EventSource": "aws:sns",
"EventVersion": "1.0",
"EventSubscriptionArn": "arn:aws:sns:ap-southeast-1:123:-teams-lambda-trigger:123-971d-4f70-927e-123",
"Sns": {
"Type": "Notification",
"MessageId": "12-d0b8-5a86-8b33-123",
"TopicArn": "arn:aws:sns:ap-southeast-1:123:vip-prestogo-teams-lambda-trigger",
"Subject": "ALARM: \"AuthenticationFailedException-was101\" in Asia Pacific (Singapore)",
"Message": "{\"AlarmName\":\"AuthenticationFailedException-was101\",\"AlarmDescription\":\"Found \\\"AuthenticationFailedException\\\" in 123\",\"AWSAccountId\":\"123\",\"NewStateValue\":\"ALARM\",\"NewStateReason\":\"Threshold Crossed: 1 out of the last 1 datapoints [1.0 (30/08/20 07:38:00)] was greater than or equal to the threshold (-1.0) (minimum 1 datapoint for OK -> ALARM transition).\",\"StateChangeTime\":\"2020-08-30T07:39:22.330+0000\",\"Region\":\"Asia Pacific (Singapore)\",\"AlarmArn\":\"arn:aws:cloudwatch:ap-southeast-1:123:alarm:AuthenticationFailedException-was101\",\"OldStateValue\":\"OK\",\"Trigger\":{\"MetricName\":\"AuthenticationFailedException-was101\",\"Namespace\":\"AuthenticationFailedException-was101\",\"StatisticType\":\"Statistic\",\"Statistic\":\"AVERAGE\",\"Unit\":null,\"Dimensions\":[],\"Period\":60,\"EvaluationPeriods\":1,\"ComparisonOperator\":\"GreaterThanOrEqualToThreshold\",\"Threshold\":-1.0,\"TreatMissingData\":\"- TreatMissingData: notBreaching\",\"EvaluateLowSampleCountPercentile\":\"\"}}",
"Timestamp": "2020-08-30T07:39:22.372Z",
"SignatureVersion": "1",
"Signature": "123/WJa6/3saRvSsz+eDW10LZaAlR7jMhnU4jE73UM/+123/123/123/123/123+j+pjE0nldGG+123/xouonYXLkBrfRQPtr1sv/RzrIJ/kTYr3EwSkGL032HNrOeWmdGZ9D4gIJ4ir/mbnbSZV7w==",
"SigningCertUrl": "https://sns.ap-southeast-1.amazonaws.com/SimpleNotificationService.pem",
"UnsubscribeUrl": "https://sns.ap-southeast-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:ap-southeast-1:123:-teams-lambda-trigger:46235663-971d-4f70-927e-0a420040a154",
"MessageAttributes": {
}
}
}
]
}
</code></pre>
<p>此Lambda函数输出字符串<code>AuthenticationFailedException-was101</code></p>