command-line-interface - 从 CLI 运行简单的 Open Policy Agent Playground 示例
问题描述
我不清楚如何从 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"
为just "data.play"
,它将像操场一样评估完整的策略:
$ 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}
推荐阅读
- python-3.x - Python 使用 Pandas Numpy 验证 excel 值数据类型
- python - 对于有监督的机器学习模型,StandardScaler() 或 sklearn 中的缩放是否更好地缩放数据?
- python - ORA2 xblock 自定义
- azure - Azure blob 容器 listBlobs 以在 java 中获取具有特定扩展名的文件
- curl - 帐户密码和“主机密码”(在 IBM Cloud 中)有区别吗?
- sql - 如何创建一个选择列并返回不同文本的不同字符串的sql过滤器?
- c - 调用 Fortran 例程的 C MPI 程序崩溃
- python - Django 表单:创建一个将实例化为表单的 GET 请求
- security - npm 审计是如何工作的?
- python - MS SQL 数据库到 SAS