open-policy-agent - 比较 Rego 语言中的两个数组

标签 open-policy-agent rego

violation[{"msg": msg}] {
    required:= ["red", "green", "blue"]
    input := ["orange", "purple"]

    msg := sprintf("")
}

我想比较所需数组中输入数组中的每个值。在其他语言中,两个普通循环就可以做到。但在 Rego 语言中,它们不是循环。有谁知道我该怎么做

最佳答案

请参阅 iteration 上的文档部分了解如何遍历集合。然而,使用集合通常更为惯用。按照你的例子:

violation[{"msg": msg}] {
    required := {"red", "green", "blue"}
    input.colors := {"orange", "purple"}
    
    count(required - input.colors) != 0

    msg := sprintf("input.colors (%v) does not contain all required colors (%v), [input.colors, required]")
}

关于open-policy-agent - 比较 Rego 语言中的两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62406364/

相关文章:

azure - Azure 存储位置中的 OPA bundle

unit-testing - rego_type_error : undefined function

terraform - 开放策略代理定义动态全局变量

open-policy-agent - OPA单元测试失败,如何输出响应变量?

open-policy-agent - 在 OPA rego 中使用 OR 条件

OPA 给出错误 "rego_parse_error: var cannot be used for rule name"

visual-studio-code - VSCode Rego 插件 opa 评估未按预期工作

kubernetes - GKE上的联合Kubernetes集群中的HPA +集群自动缩放器+ OPA

kubernetes - 为什么我们需要 OPA 网守?