Как мне создать фильтр подписки SNS, включающий два атрибута, используя AWS CDK в Python? - PullRequest
1 голос
/ 30 мая 2020

Я настраиваю нашу AWS инфраструктуру, используя CDK в Python. Я хочу подписать очередь sqs на SNS topi c с использованием фильтра, когда идентификатор находится в диапазоне, а тип является одним из двух типов. Фильтр должен выглядеть так:

{"id": [{"numeri c": [">", 0, "<", 100]}], "type": ["foo "," bar "]} </p>

Вот что у меня есть:

class MyStack (core.Stack): def init (self, scope: core.Construct, id: str, ** kwargs) -> None: super (). init (scope, id, ** kwargs)

    queue = sqs.Queue(self, "MyQueue")
    snsTopic = sns.Topic(self, "MyTopic", display_name="My Topic")

    idMapping = {"id":  sns.SubscriptionFilter(conditions=[{"numeric": [">", 0, "<", 100] } ])}
    typeMapping = {"type" : sns.SubscriptionFilter(conditions=["foo", "bar"])}

    sub = subs.SqsSubscription(queue, filter_policy = idMapping)
    snsTopic.add_subscription(sub)

Кажется, работает, если я установил filter_policy либо для idMapping, либо для typeMapping, но как мне выполнить И для двух?

1 Ответ

2 голосов
/ 30 мая 2020

просто дайте один dict, содержащий оба ключа

mapping = {"id": ...,"type" :...)}

...