程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了VSCode Rego 插件 opa 评估未按预期工作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决VSCode Rego 插件 opa 评估未按预期工作?

开发过程中遇到VSCode Rego 插件 opa 评估未按预期工作的问题如何解决?下面主要结合日常开发的经验,给出你关于VSCode Rego 插件 opa 评估未按预期工作的解决方法建议,希望对你解决VSCode Rego 插件 opa 评估未按预期工作有所启发或帮助;

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

文件夹结构:

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

learning.rego

package learning

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

input.Json

{}

当我从命令面板中选择“OPA:评估选择”选项时,出现以下错误。

{
  "errors": [
    {
      "@R_197_8798@ge": "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
  }
}

但是相同的策略在 rego playground 中按预期工作,并按预期评估为“true”。我在这里错过了什么?

解决方法

尝试运行“Evaluate Package”而不是“Evaluate SELEction”,它应该可以工作。

VSCode 的 Open Policy Agent 扩展提供了三种评估 Rego 代码的方法:

    @H_673_47@评估包

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

    @H_673_47@评估选择

此选项评估 Rego 包的部分,因此它期望选择以正文开头(例如您的 test 定义)。如果您只选择 test 及其定义,它应该可以工作。

    @H_673_47@部分评估选择

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

大佬总结

以上是大佬教程为你收集整理的VSCode Rego 插件 opa 评估未按预期工作全部内容,希望文章能够帮你解决VSCode Rego 插件 opa 评估未按预期工作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。