我在OPA网站上看到了这一点,我可以使用以下内容:
在命令行上评估策略。/opa-eval-i input.json-d example.rego
在我的情况下,我有多个输入文件,我已经将其修改为
/opa-eval-i/tmp/tfplan.json-d/tmp/example.rego-d/tmp/input1.json-d/tmp-input2.json
我可以直接修改它来读取tmp文件夹中的所有json文件吗?
是!CLI将接受-d
/--data
和-b
/--bundle
参数的目录,并从中递归加载文件。
Ex with:
/tmp/foo/input1.json
/tmp/foo/input2.json
opa eval -d /tmp/foo/input1.json -d /tmp/foo/input2.json ..
与相同
opa eval -d /tmp/foo ..
请记住,-d
/--data
将尝试加载目录中的ANY文件,这有时会导致冲突(例如,数据文档中的重复密钥(或加载不正确的文件。因此,在指向/tmp
时要小心,因为它可能包含您不需要的其他文件(请注意,上面的示例使用了一个子目录(。通常,我们建议使用-b
/--bundle
,并将文件提供为data.json
,其目录结构遵循捆绑包规范https://www.openpolicyagent.org/docs/latest/management/#bundle-文件格式,可以帮助避免大多数常见问题。