簡體   English   中英

AWS Lambda&SNS:調用Lambda跨區域

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM