我在学OPA和rego。我正在尝试编写一个简单的策略,并通过VSCode插件进行同样的评估。
文件夹结构:

learning.rego
package learning
test {
a := "test"
a == "test"
}input.json
{}当我从命令托盘中选择"OPA:计算选择“选项时,我会得到以下错误。
{
"errors": [
{
"message": "expected body but got *ast.Package"
}
],
"metrics": {
"timer_rego_load_bundles_ns": 919639,
"timer_rego_module_compile_ns": 481890,
"timer_rego_module_parse_ns": 55722,
"timer_rego_query_parse_ns": 22773
}
}但是,同样的策略在雷戈游乐场的效果与预期一致,并按预期评估为“真”。我在这里错过了什么?
发布于 2021-06-07 16:33:51
试着运行“评估包”而不是“评估选择”,它应该能工作。
VSCode的开放策略代理扩展提供了评估Rego代码的三种方法:
,这似乎是您想要的。,它将所选的Rego代码解析为一个完整的包。它期望选择以包声明(例如package learning)开始。如果您选择整个Rego包并运行“评估包”,它应该可以工作。
此选项评估Rego包的一部分,因此它希望选择以主体开始(例如,test定义)。如果您只选择了test及其定义,那么它应该可以工作。
最后一个选项是更复杂。本质上,它不是评估策略,而是返回满足策略的条件。这对于构建外部数据存储查询或与复杂数据交互非常有用。
发布于 2022-04-22 08:33:08
在vs代码中,按ctrl+p并搜索>OPA:计算包并输入,您将看到结果。

发布于 2022-11-02 19:47:17
使用Evaluate Selection
双击策略名称,在您的例子中是test
现在运行Evaluate Selection,它应该可以正常工作。
有关更多信息,请参阅本网站:链接
关于你的具体情况,请阅读第二章。
https://stackoverflow.com/questions/67842690
复制相似问题