[英]AWS Lambda & SNS: Invoke Lambda cross-region
我有一个Lambda函数部署到几个地区。 我想向SNS发布一条消息来调用这些函数。
使用aws-cli我创建了主题,给予了与SNS通信的Lambda权限,并创建了订阅。 订阅似乎已成功创建,我可以在AWS控制台中看到它。 但是,它不起作用。 lambda函数不会被调用。
这是基于CloudFormation
的示例。 您必须将SNS
调用权限添加到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函数 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.