我试图根据触发该规则的条件返回 OPA 策略中的响应对象,但给出错误“错误评估 policy.rego:11: eval_conflict_error: 完整规则不得产生多个输出”,因为两个 OR 条件都评估为真的。
例如,这是一个示例 OPA 策略:
package play
allow = response {
mainRule
OptionalRule
response := {
"field": OptionalRule.field
}
}
OptionalRule = resp {
input.a == "01"
input.b == "C"
resp := {
"field": "OptionalRule1"
}
}
OptionalRule = resp {
input.c != 3
resp := {
"field": "OptionalRule2"
}
}
mainRule {
input.d > 50
input.e < 5
}
使用以下输入:
{
"a": "01",
"b": "C",
"c": 4,
"d": 55,
"e": 1
}
在这里,我尝试将 OptionalRule 实现为 OR 条件并尝试返回触发它的 optionalRule 条件,但它给出了上述错误。关于如何实施的任何想法?