我有一个部署到多个区域的 Lambda 函数。我想向 SNS 发布一条消息来调用这些函数。
我使用 aws-cli 创建了主题,授予 Lambda 与 SNS 通信的权限,并创建订阅。订阅似乎已成功创建,我可以在 AWS 控制台中看到它。但是,这不起作用。 lambda 函数不会被调用。
This is CloudFormation
基于示例。您必须添加调用权限SNS
to the Lambda
功能:
{
"Type" : "AWS::Lambda::Permission",
"Properties" : {
"FunctionName" : { "Fn::GetAtt" : [ "YourLambda", "Arn" ] },
"Action" : "lambda:InvokeFunction",
"Principal" : "sns.amazonaws.com",
"SourceArn" : { "Ref" : "YourSNSTopicArn" }
}
}
然后你需要订阅你的Lambdas
给你的SNS
话题。这可以通过 API 调用或通过CloudFormation
.
{
"Type" : "AWS::SNS::Topic",
"Properties" : {
"TopicName" : "YourTopicName",
"Subscription" : [ {
"Endpoint" : { "Fn::GetAtt" : [ "YourLambda", "Arn" ] },
"Protocol": "lambda"
} ]
}
}
如果您缺少其中任何一个,您的Lambdas
不会调用。以上信息来源为官方博客文章通过SNS调用Lambda函数.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)