Как узнать, какая Лямбда отправила сообщение в очередь мертвых писем? - PullRequest
0 голосов
/ 30 октября 2019

Я использую тему SNS в качестве очереди недоставленных сообщений для обработки ошибок, выдаваемых несколькими лямбдами. В сообщениях об ошибках присутствуют следующие атрибуты:

  • RequestID,

  • ErrorCode,

  • ErrorMessage,

Однако я не могу легко найти, какая лямбда вызвала ошибку, так как ничего не связанного с этим появляется в сообщении (например: ARN, имя функции ...)

Хотя можно найти идентификатор запроса в CloudWatch или создать несколько тем, должен быть намного более простой способ найти, какая лямбда вызвала ошибку. Ниже приведена структура полученного сообщения:

{
    "Records": [
        {
            "EventSource": "aws:sns",
            "EventVersion": "1.0",
            "EventSubscriptionArn": "",
            "Sns": {
                "Type": "Notification",
                "MessageId": "",
                "TopicArn": "",
                "Subject": null,
                "Message": "",
                "Timestamp": "",
                "SignatureVersion": "",
                "Signature": "",
                "SigningCertUrl": "",
                "UnsubscribeUrl": "",
                "MessageAttributes": {
                    "RequestID": {
                        "Type": "String",
                        "Value": ""
                    },
                    "ErrorCode": {
                        "Type": "String",
                        "Value": "200"
                    },
                    "ErrorMessage": {
                        "Type": "String",
                        "Value": "test"
                    }
                }
            }
        }
    ]
}

Есть ли способ добавить информацию, такую ​​как ARN, в лямбду, которая вызвала это сообщение об ошибке?

1 Ответ

0 голосов
/ 30 октября 2019

Вы можете использовать AWS CloudTrail, чтобы определить, какая Лямбда была выполнена:

https://docs.aws.amazon.com/lambda/latest/dg/logging-using-cloudtrail.html

...