Cloud Custodian策略中多个filters的默认逻辑运算符是什么
Cloud Custodian 并列Filters的评估逻辑
你列出的策略中同层级配置的3个过滤条件,默认采用AND逻辑,要求所有条件全部匹配,只有同时满足三个SSM属性校验规则的EC2实例才会被该策略命中。
对应策略示例
policies: - name: ec2-ssm-check resource: ec2 filters: - type: ssm key: PingStatus value: Online - type: ssm key: PlatformName value: Ubuntu - type: ssm key: PlatformVersion value: 18.04
具体规则说明
- 不显式指定逻辑运算符时,同一层级下并列编写的多个filter固定执行**与(AND)**判断,资源必须满足所有列出的过滤条件才会被策略捕获。以上述策略为例,最终命中的EC2实例必须同时符合三个要求:
- SSM客户端上报的PingStatus字段值为Online
- SSM客户端上报的PlatformName字段值为Ubuntu
- SSM客户端上报的PlatformVersion字段值为18.04
- 如果需要实现**或(OR)**匹配(即满足任意一个条件即可命中),不能直接并列编写filter,需要使用内置的
or逻辑过滤器包裹需要做或判断的条件,参考写法如下:
policies: - name: ec2-ssm-multi-os-check resource: ec2 filters: - type: ssm key: PingStatus value: Online - or: - type: ssm key: PlatformName value: Ubuntu - type: ssm key: PlatformName value: CentOS
除
or外,Cloud Custodian还支持and、not两类通用逻辑运算符,可嵌套组合实现复杂的过滤规则,未显式声明逻辑运算符的同层级filters,始终按AND逻辑处理。
内容的提问来源于stack exchange,提问作者razz
相关产品推荐
相关产品推荐

