У меня есть шаблон с подпиской на SNS для очереди SQS, который выглядит следующим образом (сокращено для краткости):
"Parameters": {
"ProductionIdentifiers": {
"Default": "1,2,3",
"Description": "Comma-separated list of production identifiers.",
"Type": "List<Number>"
}
},
"Conditions": {
"IsProd": {
"Fn::Equals": [
{ "Fn::Sub": "${Environment}" },
"prod"
]
}
},
"Resources": {
"Subscription": {
"Type": "AWS::SNS::Subscription",
"Properties": {
"Endpoint": {
"Fn::GetAtt": [
"Queue",
"Arn"
]
},
"Protocol": "sqs",
"TopicArn": {
"Fn::ImportValue": {
"Fn::Sub": "My-Sns-Topic-${Environment}"
}
},
"FilterPolicy": {
"identifier": {
"Fn::If": [
"IsProd",
{ "Ref": "ProductionIdentifiers" },
[ { "anything-but": [ "-1", "0" ] } ]
]
}
}
}
}
}
Я хотел бы использовать список идентификаторов, если среда Prod или все, кроме -1, 0 в противном случае. Однако присоединенная очередь остается пустой. Я немного скептически отношусь к тому, как строю фильтр. Я неправильно форматирую фильтр?