更新时间:2022-09-22 GMT+08:00
条件(condition)
条件可以是一条单独的判断语句,也可以是一个嵌套的逻辑运算符。
判断语句的格式如下,其返回的是一个布尔值。它的作用是判断一个指定的值是否满足特定的要求。
{ "value": "...", "comparator": "...", "pattern": "..." }
- value:此处为常量或者表达式,具体值的类型根据选择的比较符而定。例如:true、1、"hello"或"${resource().properties.metadata}"。
- comparator:比较符。
- pattern:此处为常量或者表达式。
支持的比较符(comparator)有以下几种:
- "equals":比较value和pattern是否相等,类型可以是字符串,整数或者布尔;
- "notEquals":结果与equals相反;
- "equalsIgnoreCase":以忽略大小写的形式比较value和pattern是否相等,类型必须是字符串;
- "like":对value和pattern进行字符串模糊匹配,你可以在pattern中添加"*"或者"?",其中"*"可以匹配0个或多个任意字符,"?"匹配一个任意字符,类型必须是字符串;
- "notLike":结果与like相反;
- "likeIgnoreCase":以忽略大小写的形式对value和pattern进行字符串模糊匹配,类型必须是字符串;
- "contains":判断pattern是否是value的子串,类型必须是字符串;
- "notContains":结果与contains相反;
- "in":判断value是否在pattern中,pattern必须是数组类型,value可以是字符串或者整数类型;
- "notIn":结果与in相反;
- "containsKey":判断value是否包含键值pattern,value必须是object类型,pattern必须是字符串类型;
- "notContainsKey":结果与containsKey相反;
- "less":判断value是否小于pattern,类型可以是字符串或者整数;
- "lessOrEquals":判断value是否不大于pattern,类型可以是字符串或者整数;
- "greater":判断value是否大于pattern,类型可以是字符串或者整数;
- "greaterOrEquals":判断value是否不小于pattern,类型可以是字符串或者整数。
条件内部嵌套逻辑运算符的例子:
{ "not": { "anyOf": [ { "value": "${resource().properties.metadata}", "comparator": "notContainsKey", "pattern": "systemEncrypted" }, { "value": "${resource().properties.metadata.systemEncrypted}", "comparator": "equals", "pattern": "0" } ] } }
父主题: DSL语法