首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VSCode Rego插件opa评估未按预期工作

VSCode Rego插件opa评估未按预期工作
EN

Stack Overflow用户
提问于 2021-06-04 19:00:03
回答 3查看 805关注 0票数 2

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

文件夹结构:

learning.rego

代码语言:javascript
复制
package learning

test {
    a := "test"
    a == "test"
}

input.json

代码语言:javascript
复制
{}

当我从命令托盘中选择"OPA:计算选择“选项时,我会得到以下错误。

代码语言:javascript
复制
{
  "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
  }
}

但是,同样的策略在雷戈游乐场的效果与预期一致,并按预期评估为“真”。我在这里错过了什么?

EN

回答 3

Stack Overflow用户

发布于 2021-06-07 16:33:51

试着运行“评估包”而不是“评估选择”,它应该能工作。

VSCode的开放策略代理扩展提供了评估Rego代码的三种方法:

  1. 评估包装

,这似乎是您想要的。,它将所选的Rego代码解析为一个完整的包。它期望选择以包声明(例如package learning)开始。如果您选择整个Rego包并运行“评估包”,它应该可以工作。

  1. 评价选择

此选项评估Rego包的一部分,因此它希望选择以主体开始(例如,test定义)。如果您只选择了test及其定义,那么它应该可以工作。

  1. 部分评价选择

最后一个选项是更复杂。本质上,它不是评估策略,而是返回满足策略的条件。这对于构建外部数据存储查询或与复杂数据交互非常有用。

票数 2
EN

Stack Overflow用户

发布于 2022-04-22 08:33:08

在vs代码中,按ctrl+p并搜索>OPA:计算包并输入,您将看到结果。

票数 0
EN

Stack Overflow用户

发布于 2022-11-02 19:47:17

使用Evaluate Selection

双击策略名称,在您的例子中是test

现在运行Evaluate Selection,它应该可以正常工作。

有关更多信息,请参阅本网站:链接

关于你的具体情况,请阅读第二章。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67842690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档