[英]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.