我使用 AWS 将 lambda 链接在一起,方法是让第二个 lambda 订阅第一个 lambda 的 SNS feed。第二个 lambda 没有从第一个 lambda 接收任何内容,并且我在 CloudWatch(或我订阅的个人电子邮件)中也没有收到 SNS 事件已被触发的通知。所以,我想知道这个问题:如何确保我的 SNS 收到 lambda 触发的事件?
当我使用 SNS Web UI 时,我会收到类似这样的日志,并且我的 lambda 日志显示它们已被触及,但仅限于我手动发送消息时。
{
"notification": {
"messageMD5Sum": "e9a72884afc5d9568f2748e34a4e50a4",
"messageId": "04f4a199-cd25-5a45-a877-f054df9b2adf",
"topicArn": "arn:aws:sns:us-east-1:xxxxxxxxxxxx:first-lambda",
"timestamp": "2017-06-28 02:12:14.098"
},
"delivery": {
"deliveryId": "173dca7a-7b31-55a2-8ee9-9bb7698f35f6",
"destination": "arn:aws:lambda:us-east-1:xxxxxxxxxx:function:second-labmda",
"providerResponse": "{\"lambdaRequestId\":\"33972992-5ba7-11e7-b363-09e0f6dc8594\"}",
"dwellTimeMs": 134,
"attempts": 1,
"statusCode": 202
},
"status": "SUCCESS"
}
我已经在其角色中授予了 lambda 发布权限,但这仅显示在 IAM 中,当我在 GUI 上查看 lambda 本身内部的策略时,我只看到 lambda 本身的 lambda 触发权限。我也是sure我的 SNS 有权写入 lambda,因为当您设置 lambda 时(正如我昨天不止一次所做的那样),它会要求您授予 SNS 主题的权限。然而,即使在测试 SNS 主题时,也永远不会达到 lambda,但如果我使用我的电子邮件帐户订阅,我确实会收到一封电子邮件。
太长了;博士
第一个 lambda 应该触发第二个 lambda 订阅的 SNS 事件。 SNS 事件没有从我的第一个 lambda 接收任何数据,除了半夜的两个日志,这些日志从未发送到我的第二个 lambda。如何确保我的 SNS 收到 lambda 触发的事件?