gpt4 book ai didi

command-line-interface - 从 CLI 运行简单的 Open Policy Agent Playground 示例

转载 作者:行者123 更新时间:2023-12-04 07:40:35 25 4
gpt4 key购买 nike

我不清楚如何从 CLI 运行 Open Policy Agent Playground 中的简单示例。

play.rego

package play
default hello = false

hello {
m := input.message
m == "world"
}

输入.json

{
"message": "world"
}

我尝试使用:

opa eval -i input.json -d play.rego "data.play.hello"

但是,我不能得到这个结果

{
"hello": true
}

不幸的是,我得到了这个::(

{
"result": [
{
"expressions": [
{
"value": true,
"text": "data.play.hello",
"location": {
"row": 1,
"col": 1
}
}
]
}
]
}

我认为其他人可能会发现了解如何从 CLI 运行这些示例很有用,所以我不得不问。

最佳答案

这是个好问题!除非选择“评估选择”,否则 Rego Playground 始终评估整个策略,即包括的所有规则。当您使用 opa eval 查询策略时,您可以选择执行相同的操作,也可以像您在示例中所做的那样 - 仅查询单个规则的值。

如果您将查询从 "data.play.hello" 更改为仅 "data.play",它将像 playground 一样评估完整的策略:

$ opa eval -i input.json -d play.rego "data.play"
{
"result": [
{
"expressions": [
{
"value": {
"hello": true
},
"text": "data.play",
"location": {
"row": 1,
"col": 1
}
}
]
}
]
}

如果您只想显示实际输出而不显示其周围的所有细节,您可以使用可用于 opa eval 的格式化选项之一,例如 --format raw:

$ opa eval --format raw -i input.json -d play.rego "data.play"
{"hello":true}

关于command-line-interface - 从 CLI 运行简单的 Open Policy Agent Playground 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67499224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com