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

OPA Rego规则中sprintf函数不生效,求问具体错误原因

问题排查结果

错误原因

  • Rego的sprintf函数要求第二个入参必须是数组类型,用来按顺序匹配格式化字符串中的所有占位符。你当前直接将input.spec.user字符串作为第二个参数传入,没有用数组包裹,触发了参数类型不匹配的报错。

修正后的Rego策略代码

package cs

deny[reason] {
    input.spec.resourceAttributes.namespace == "sveltos"
    # 第二个参数改为数组类型,包裹要填充的变量
    reason := sprintf("OPA: User (%v) must belong to valid group", [input.spec.user])
}

运行结果

使用你提供的输入参数运行修正后的规则,会正常生成deny原因:OPA: User (jane) must belong to valid group,符合预期逻辑。


内容的提问来源于stack exchange,提问作者Satish Burnwal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:24:03