0

我在 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 文件,而不是将文件单独指定为 input1、input2 等吗?

4

1 回答 1

1

是的!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将尝试加载在目录中找到的任何文件,这有时会导致冲突(例如,数据文档中的重复键)或加载不正确的文件。所以要小心指向/tmp它可能包含你不需要的额外文件(注意上面的例子使用了一个子目录)。通常,我们建议使用-b/并按照捆绑规范https://www.openpolicyagent.org/docs/latest/management/#bundle-file-format--bundle的目录结构提供文件,这有助于避免大多数常见问题。data.json

于 2020-08-17T16:21:49.487 回答