Все переменные (ключ, значения) хранятся в реестре переменных , и когда мы обновляем / создаем переменные, у нас будут запросы на обновление rest api call in задний конец.
Если вы создаете пользовательский процессор для использования the variables
, то вам нужно create processor
до включить язык выражений , тогда вы можете ссылаться на переменные с помощью nifi expression language ${variable_name}
, заменив на variable_value at run time
.
См. эту ссылку для более подробной информации о реестре переменных в NiFi
Если вам нужно обновить / создать любую переменную в Nifi, вы можете использовать
ниже остальных API вызов:
bash$ curl -i -H 'Content-Type: application/json' -X POST -d '{\
"processGroupRevision": {\
"clientId": "<ClientId>",\
"version": 0\
},\
"variableRegistry": {\
"processGroupId": "<process-group-id>",\
"variables": [{\
"variable": {\
"name": "<variable-name>",\
"value": "<variable-value>"\
}\
}]\
}\
}' <URL>/nifi-api/process-groups/<process-group-id>/variable-registry/update-requests
Этот вызов curl обновит значение
- , если переменная уже определена, а значение было изменено, останавливается и запускает все задействованные службы контроллера и процессор .
- Если переменная еще не определена, то создается новая переменная с заданным значением.
Как получить ClientID?
Вы можете сделать приведенный ниже вызов API Get Rest:
curl -X GET <URL>/nifi-api/process-groups/<process-group-id>/variable-registry
из ответа вы можете получить детали clientID.