使用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主题的所有者吗? 否则,业主需要授予您(在主题政策中)订阅该主题的权利。

这里有一个简短的清单,可以帮助你完成你要找的东西:

  1. 您的SNS Topic需要具有授予Lambda函数访问权限的IAM access policy
  2. 您的Lambda函数需要execution policy授予SNS Topic执行权限。
  3. 让您的Lambdafunction订阅SNS Topic

此清单基于AWS移动博客文章通过Amazon SNS调用AWS Lambda函数 。 请记住,Web控制台自动执行这些步骤。 如果您使用的是API,则必须自己执行它们。