【问题标题】:SNS -> Lambda subscription doesn't work when set via API, but does when set by admin consoleSNS -> Lambda 订阅在通过 API 设置时不起作用,但在通过管理控制台设置时起作用
【发布时间】:2016-08-30 17:46:09
【问题描述】:
我正在使用节点 aws-sdk 为 Lambda 设置 SNS 订阅。调用成功返回 - 它为我提供了订阅 ARN,当我查看 Web 控制台时,它会出现。但是,当我向该主题发布消息时,什么也没有发生。我尝试在 Web 控制台中设置相同的订阅(所有字段看起来完全相同),它确实工作。
控制台在幕后做了什么我不知道的事情吗?设置 SNS 主题/Lambda 的权限,诸如此类?
【问题讨论】:
标签:
amazon-web-services
aws-sdk
aws-lambda
amazon-sns
【解决方案1】:
事实证明我对权限的怀疑是正确的 - 您还需要使用以下模式添加 Lambda.addPermission:
{
FunctionName: functionArn,
StatementId: Date.now().toString(),
Action: 'lambda:InvokeFunction',
Principal: 'sns.amazonaws.com',
SourceArn: topicArn
}