如何在EventBridge规则中匹配数组内同一元素的字段组合?
解决EventBridge事件规则匹配数组同一元素字段组合的问题
问题原因
你之前的规则会误匹配,是因为直接在array1下同时指定field1和field2的条件时,EventBridge会判定只要数组中存在任意元素满足field1条件,且存在任意元素满足field2条件就触发匹配,不会校验这两个条件是否属于同一个数组元素。
正确的规则写法
要确保两个字段属于数组中的同一个元素,需要把字段组合条件放在array1的[]数组内的同一个对象中,指定在单个数组元素的上下文里匹配:
{ "object1": ["value1"], "object2": { "array1": [ { "field1": ["pqrs"], "field2": ["2345"] } ] } }
规则说明
- 这个写法会让EventBridge检查数组中是否存在至少一个元素同时满足field1和field2的指定值,完全符合你需要的“同一元素内字段组合匹配”要求。
- 用你提供的误匹配事件测试时,因为没有任何一个数组元素同时拥有
field1: "pqrs"和field2: "2345",该规则会拒绝匹配,不会再出现误判。
内容的提问来源于stack exchange,提问作者abhi gang
相关产品推荐
相关产品推荐

