Оценка нескольких файлов из папки с помощью команды 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/, что может помочь избежать большинства этих распространенных проблем.

Другие вопросы по тегам