【发布时间】:2018-12-13 08:22:19
【问题描述】:
更新:Cloudformation 现在支持 SNS 主题过滤器,所以这个问题不再相关,不需要自定义插件或代码。
我正在构建一个包含多个 SNS 主题和多个 Lambda 的系统,每个 Lambda 都从其分配的 SQS 队列中读取消息。 SQS 队列订阅了 SNS 主题,但也有一个过滤策略,因此消息最终会出现在相关的 SQS 队列中。
当我在 AWS 控制台中设置订阅时,它运行良好。
现在我尝试在我的代码中做同样的事情,但 AWS Cloudformation 文档没有描述如何向订阅添加过滤策略。基于python examples here,我尝试了以下方法:
StopOperationSubscription:
Type: "AWS::SNS::Subscription"
Properties:
Protocol: sqs
TopicArn:
Ref: StatusTopic
Endpoint:
Fn::GetAtt: [StopActionQueue, Arn]
FilterPolicy: '{"value": ["stop"]}'
然后我得到这个错误:
An error occurred: StopOperationSubscription - Encountered unsupported property FilterPolicy.
如何使用 CloudFormation 设置我需要的过滤策略?如果不支持,您有什么替代方案建议?
我希望在我部署无服务器应用程序时自动设置它,无需手动步骤。
【问题讨论】:
-
我猜这个方法在这里也适用...stackoverflow.com/questions/33675033/…
-
现在已经过时了,因为 CFN 现在支持 FilterPolicy aws.amazon.com/blogs/compute/…
标签: amazon-cloudformation amazon-sqs amazon-sns serverless-framework