这是与我的问题相关的Cloudformation模板代码:
"SNSTopic": {
"Type": "AWS::SNS::Topic",
"Properties": {
"TopicName": "JumpboxPresenceTopic",
"DisplayName": "Jumpbox Presence Topic",
"Subscription": [
{
"Endpoint": {
"Fn::GetAtt": [
"Lambda",
"Arn"
]
},
"Protocol": "lambda"
}
]
}
},
"Lambda": {
"Type": "AWS::Lambda::Function",
"Properties": [...]
奇怪的是,如果我从 SNS 仪表板为同一个 lambda 函数创建新订阅,则不会创建新订阅,因为它将是完全相同的重复。但是,现在如果我检查 Lambda 仪表板中的事件源面板,我可以看到 SNS: JumpboxPresenceTopic
的新条目:
我觉得这是亚马逊方面的问题,但我可能是错的。我的方法有问题还是 AWS 的限制?
最佳答案
您必须先授予 SNS 权限才能调用 Lambda。 这是来自 AWS 的示例。请将其从 S3 更改为 SNS,并且不要忘记将 SourceArn 设置为 SNS 主题 ARN。
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html
关于amazon-web-services - 无法使用 CloudFormation 在 Lambda 函数上创建 SNS 事件源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32465505/