You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Open Policy Agent(OPA)中通过集合取值作为另一集合键检索数据

OPA嵌套检索规则实现方案

报错根因

  • 你定义的servers、plan对象的所有值均为数组结构,你编写的规则直接将数组作为key检索plan,不符合Rego语法要求
  • 规则定义外层的大括号属于冗余写法,不符合Rego规则的标准格式

正确规则代码

# 替换为你实际使用的包名
package demo

default rate = ""

rate = msg {
  # 第一步:取出server对应plan类型数组的第一个元素,得到字符串类型的plan key
  p := servers[input.server][0]
  # 第二步:用plan key检索对应额度数组,取第一个元素得到最终值
  msg := plan[p][0]
}

运行效果验证

传入参数input.server = "server2"时,规则返回结果为"1000",完全匹配你的需求。

如果你的实际业务场景中单个server可能对应多个plan类型,可以调整规则用遍历逻辑输出多值结果,当前实现针对你给出的单值数组场景可直接使用。

内容的提问来源于stack exchange,提问作者JD Allen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:57:08