我已经使用cloudformation创建了lambda和SNS。在这里,第一个lambda正在调用具有另一个lambda订阅的SNS。在这里,SNS应该调用lambda的别名。在SNS主题中,lambda ARN显示为订户,但在lambda中未将其添加为触发器。没有从SNS调用的lambda的单个调用日志。那么这是某种许可的问题吗?需要帮助...
答案 0 :(得分:0)
是的,这是一个权限问题。您需要向lambda函数添加权限,以允许SNS调用它。
使用AWS::Lambda::Permission资源添加权限以允许SNS调用lambda函数。
答案 1 :(得分:0)
我玩得很开心。我最初将我的 lambda 函数设置为查找“aws:s3”的事件源。为了从 s3 事件中获取事件源,我使用了“event.Records[0].eventSource”。当我测试 event.Records[0].eventSource == "aws:sns" 以检查我的 SNS 触发器是否已触发时,它不起作用。直到我找到示例 SNS 事件 JSON,我才注意到 SNS 事件具有“EventSource”的事件源节点。这是资本案件。我将测试更改为
event.Records[0].EventSource == "aws:sns"
它奏效了。事件消息格式的一致性就到此为止。