我已经创建了一个SNS主题,并且有其他一些订阅该主题的服务可以接收通知。
现在,我的要求是添加一个筛选器策略,以便只有满足要求的服务才能收到消息。
在Terraform上支持delivery_policy,但无法直接在SNS.tf上使用filter_policy。
请建议是否有其他选择,如果我的方法有误,请纠正我。
PS:我必须使用terraform而不是从AWS控制台执行
谢谢, 苏木卡
答案 0 :(得分:0)
需要将过滤器应用于订阅者,而不是应用于自身主题, 让我们假设以下配置:
resource "aws_sns_topic" "test" {
name = "my-topic-with-policy"
}
resource "aws_sns_topic_subscription" "lambda_sns_subscription" {
topic_arn = "${aws_sns_topic.test.arn}"
protocol = "lambda"
endpoint = "///"
filter_policy = "${jsonencode(map("aa",list("aa")))}"
}
请参阅“ aws_sns_topic_subscription”资源上的filter_policy属性
,然后根据SNS过滤器文档https://docs.aws.amazon.com/sns/latest/dg/sns-subscription-filter-policies.html
,填充器必须是有效的json