Оценка нескольких файлов из папки с помощью команды opa eval
Я видел это на веб-сайте 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 и т. Д. По отдельности, могу ли я напрямую изменить их для чтения всех файлов json, находящихся в папке tmp?
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
/--bundle
и предоставление файлов как data.json
со структурой каталогов в соответствии со спецификацией пакета https://www.openpolicyagent.org/docs/latest/management/, что может помочь избежать большинства этих распространенных проблем.