Amazon SNS,如何找到事件的来源?

Amazon SNS, how to find the source of an event?

所以我试图找到一个奇怪错误的来源,该错误会导致特定 lambda 函数的异常调用峰值。到目前为止,我已将日志记录功能添加到 lambda 并重新部署以收集有关触发 lambda 的上下文和事件对象的更多信息。

所以我想知道这些事件起源于何处,并且从上述记录的事件对象中我发现 TopicArn 是罪魁祸首,但我如何才能找到这种关系中有罪的发布者?有什么想法或我忽略了什么吗?

根据您的登录方式,您可能还想将 SQS 队列附加到主题。这会给你完整的数据包。我可以在我的一个中看到类似的东西:

{
  "version": "0",
  "id": "7f47b81a-10cc-4b28-be35-123456789",
  "detail-type": "Scheduled Event",
  "source": "aws.events",
  "account": "123456789",
  "time": "2017-02-03T18:28:52Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:events:us-east-1:123456789:rule\/5_min_scheduler"
  ],
  "detail": {

  }
}

这显然是来自 cloudwatch 计划的事件,但它确实有来源。我不确定您是否会这样做,但是除了 Lambda 之外,将主题推送到队列以协助调试也很容易。

你有CloudTrail enabled? You should be able to use CloudTrail to log all the calls to your SNS topics.