Что входит в полезную нагрузку JSON, которую Cloudwatch отправляет в SNS?Как я могу прочитать эти данные? - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь проанализировать данные с помощью Lambda, когда в Cloudwatch сработал сигнал тревоги.В настоящее время я использую SNS для запуска лямбда;тем не менее, я хочу знать, какие данные отправляются на эту лямбду, чтобы я мог их правильно проанализировать.

Как я могу прочитать данные тревоги JSON, которые были переданы в лямбду SNS?

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Самый простой и простой способ - создать новую подписку на тему SNS, в которую облачные часы отправляют данные о тревогах, с протоколом Email-JSON, введите адрес электронной почты и создайте подписку.

Подтвердите подписку, нажав на ссылку для подтверждения в электронной почте. Когда CloudWatch отправит сигнал тревоги в следующий раз, вы получите данные JSON по электронной почте, а затем сможете выяснить, как их правильно проанализировать.

0 голосов
/ 18 сентября 2018

Самый простой и точный способ - print(event) и, фактически, посмотреть, что находится внутри полезной нагрузки, официальный документ AWS предоставляет следующую структуру для события SNS Amazon SNS Sample Event , reference

{
"Records": [
{
  "EventVersion": "1.0",
  "EventSubscriptionArn": eventsubscriptionarn,
  "EventSource": "aws:sns",
  "Sns": {
    "SignatureVersion": "1",
    "Timestamp": "1970-01-01T00:00:00.000Z",
    "Signature": "EXAMPLE",
    "SigningCertUrl": "EXAMPLE",
    "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
    "Message": "Hello from SNS!",
    "MessageAttributes": {
      "Test": {
        "Type": "String",
        "Value": "TestString"
      },
      "TestBinary": {
        "Type": "Binary",
        "Value": "TestBinary"
      }
    },
    "Type": "Notification",
    "UnsubscribeUrl": "EXAMPLE",
    "TopicArn": topicarn,
    "Subject": "TestInvoke"
  }
}
]
}

также, этот конкретный пример CloudWatch может быть полезен

{
"Records": [
{
  "EventSource": "aws:sns",
  "EventVersion": "1.0",
  "EventSubscriptionArn": "arn:aws:sns:eu-west-1:000000000000:cloudwatch-alarms:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "Sns": {
    "Type": "Notification",
    "MessageId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "TopicArn": "arn:aws:sns:eu-west-1:000000000000:cloudwatch-alarms",
    "Subject": "ALARM: \"Example alarm name\" in EU - Ireland",
    "Message": "{\"AlarmName\":\"Example alarm name\",\"AlarmDescription\":\"Example alarm description.\",\"AWSAccountId\":\"000000000000\",\"NewStateValue\":\"ALARM\",\"NewStateReason\":\"Threshold Crossed: 1 datapoint (10.0) was greater than or equal to the threshold (1.0).\",\"StateChangeTime\":\"2017-01-12T16:30:42.236+0000\",\"Region\":\"EU - Ireland\",\"OldStateValue\":\"OK\",\"Trigger\":{\"MetricName\":\"DeliveryErrors\",\"Namespace\":\"ExampleNamespace\",\"Statistic\":\"SUM\",\"Unit\":null,\"Dimensions\":[],\"Period\":300,\"EvaluationPeriods\":1,\"ComparisonOperator\":\"GreaterThanOrEqualToThreshold\",\"Threshold\":1.0}}",
    "Timestamp": "2017-01-12T16:30:42.318Z",
    "SignatureVersion": "1",
    "Signature": "Cg==",
    "SigningCertUrl": "https://sns.eu-west-1.amazonaws.com/SimpleNotificationService-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.pem",
    "UnsubscribeUrl": "https://sns.eu-west-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:eu-west-1:000000000000:cloudwatch-alarms:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "MessageAttributes": {}
  }
}
]
}
...