aws-lambda - 如何知道哪个 Lambda 向死信队列发送了消息?
问题描述
我使用 SNS 主题作为死信队列来处理由多个 Lambda 引发的错误。在错误消息中,有以下属性:
请求ID,
错误代码,
错误信息,
但是,我无法轻易找到哪个 Lambda 引发了错误,因为消息中没有出现任何与它相关的内容(例如:ARN、函数名称......)
尽管可以在 CloudWatch 上查找请求 ID,或者创建多个主题,但应该有一种更简单的方法来查找哪个 Lambda 引发了错误。下面是接收到的消息的结构:
{
"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"
}
}
}
}
]
}
有什么方法可以在触发此错误消息的 Lambda 上添加信息,例如 ARN?
解决方案
您可以使用 AWS CloudTrail 来确定执行了哪个 Lambda:
https://docs.aws.amazon.com/lambda/latest/dg/logging-using-cloudtrail.html
推荐阅读
- excel - 当我使用 INDIRECT 向下拖动时,行号不会更新
- java - Java 1.6 上 Base64 的替代方案?
- mysql - MySQL:用户 root@localhost 的访问被拒绝
- java - 将 pojo 类列表中的值放入 hashmap
- php - 我在使用 Wordpress 函数 get_template_part() 时遇到问题
- javascript - 使用纯 JavaScript 通过 Websocket 连接到 MQTT 代理
- python - python kivy 请求导入错误,我有 buılozer.spec
- angular - 我正在尝试发布我的角度库,但它不起作用
- regex - Apache Nifi - 使用 UpdateAttribute 处理器更改属性路径
- reactjs - 如何避免 React Native 中图像下载期间出现“过多的挂起回调:501”错误?