如何在 Python 中使用 AWS CDK 创建涉及两个属性的 SNS 订阅过滤器?
How do I create an SNS subscription filter involving two attributes using the AWS CDK in Python?
我正在 Python 中使用 CDK 设置我们的 AWS 基础设施。当 id 在范围内并且类型是两种类型之一时,我想使用过滤器将 sqs 队列订阅到 SNS 主题。过滤器应如下所示:
{
"id": [{"numeric": [">", 0, "<", 100]}],
"type": ["foo", "bar"]
}
这是我的:
class MyStack(core.Stack):
def init(self, scope: core.Construct, id: str, **kwargs) -> None:
super().init(作用域, 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 似乎可以工作,但我如何进行两者的 AND?
只给出一个包含两个键的字典
mapping = {"id": ...,"type" :...)}
我正在 Python 中使用 CDK 设置我们的 AWS 基础设施。当 id 在范围内并且类型是两种类型之一时,我想使用过滤器将 sqs 队列订阅到 SNS 主题。过滤器应如下所示:
{ "id": [{"numeric": [">", 0, "<", 100]}], "type": ["foo", "bar"] }
这是我的:
class MyStack(core.Stack): def init(self, scope: core.Construct, id: str, **kwargs) -> None: super().init(作用域, 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 似乎可以工作,但我如何进行两者的 AND?
只给出一个包含两个键的字典
mapping = {"id": ...,"type" :...)}