问题描述
我已经在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
除了将文件分别指定为input1,input2等之外,我还可以直接对其进行修改以读取tmp文件夹中存在的所有json文件吗?
解决方法
是的! CLI将接受-d
/ --data
和-b
/ --bundle
参数的目录,并从中递归加载文件。
例如:
/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
并按照捆绑包规范here的目录结构以data.json
的形式提供文件,以帮助避免大多数常见问题。