我知道可以使用rest-api检索变量注册表中的值,但是有没有办法设置变量值?当我更改变量时,我看到发送了以下POST:
http://localhost:8080/nifi-api/process-groups/{ID}/variable-registry/update-requests
Run Code Online (Sandbox Code Playgroud)
但是我不太了解VariableRegistryEntity在哪里发挥作用,或者如何处理变量。
更广泛地说,我想做的是在另一个程序的自定义Nifi处理器中操作变量,因此,欢迎您提供任何指导或想法。
所有变量(键,值)都存储在变量注册表中,当我们更新/创建变量时,我们将在后端进行更新请求rest api调用。
如果您正在构建自定义的处理器使用the variables,那么你需要create processor以使表达式语言,那么你可以通过使用参考变量nifi expression language ${variable_name}将与替换variable_value at run time。
请参阅此链接,以获取有关NiFi中的变量注册表的更多详细信息。
如果您需要在Nifi中更新/创建任何变量,则可以使用以下rest 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
Run Code Online (Sandbox Code Playgroud)
该curl调用将更新值
如何获得ClientID?
您可以进行以下Get Rest api调用:
curl -X GET <URL>/nifi-api/process-groups/<process-group-id>/variable-registry
Run Code Online (Sandbox Code Playgroud)
从响应中,您可以获取clientID详细信息。
| 归档时间: |
|
| 查看次数: |
1386 次 |
| 最近记录: |