使用javascript SDK在lambda上启用SNS事件源
我正在尝试使用JavaScript AWS SDK在lambda上创buildSNS事件源。 我有以下代码片段:
var permissionParams = { FunctionName: "MyFunction", Action: "lambda:Invoke", Principal: "sns.amazonaws.com", StatementId: "snsinvoke", SourceArn: "MyArn" }; lambda.addPermission(permissionParams, function (err, data) { if (err) { console.log(err); } else { console.log(data); } });
这与订阅该主题的另一个调用相结合在lambda中创build事件源,但是它被禁用。 是否有另一个电话,我可以使它启用或有一种方法来启用它,当我添加它?
你是SNS主题的所有者吗? 否则,业主需要授予您(在主题政策中)订阅该主题的权利。
这里有一个简短的清单,可以帮助你完成你要找的东西:
- 您的
SNS Topic
需要具有授予Lambda
函数访问权限的IAM access policy
。 - 您的
Lambda
函数需要execution policy
授予SNS Topic
执行权限。 - 让您的
Lambda
function订阅SNS Topic
。
此清单基于AWS移动博客文章通过Amazon SNS调用AWS Lambda函数 。 请记住,Web控制台自动执行这些步骤。 如果您使用的是API,则必须自己执行它们。