Apache nifi 如何使用RESTAPI更改Nifi变量注册表

Apache nifi 如何使用RESTAPI更改Nifi变量注册表,apache-nifi,Apache Nifi,我知道可以使用RESTAPI检索变量注册表中的值,但是有没有办法设置变量值?当我更改一个变量时,我看到发送了以下帖子: http://localhost:8080/nifi-api/process-groups/{ID}/variable-registry/update-requests 但是我真的不明白VariableRegistryEntity在哪里起作用,或者我可能如何操作变量 更广泛地说,我试图做的是从另一个程序中操纵定制Nifi处理器内的变量,因此欢迎提供任何关于如何操作的指导或想法

我知道可以使用RESTAPI检索变量注册表中的值,但是有没有办法设置变量值?当我更改一个变量时,我看到发送了以下帖子:

http://localhost:8080/nifi-api/process-groups/{ID}/variable-registry/update-requests
但是我真的不明白VariableRegistryEntity在哪里起作用,或者我可能如何操作变量

更广泛地说,我试图做的是从另一个程序中操纵定制Nifi处理器内的变量,因此欢迎提供任何关于如何操作的指导或想法

所有变量(键、值)都存储在变量注册表中当我们更新/创建变量时,我们将在后端进行更新请求rest api调用

如果您正在构建自定义处理器以使用
变量
,则需要
创建处理器
启用表达式语言,然后可以使用
nifi表达式语言引用变量${variable\u name}
将在运行时替换为
变量值

有关NiFi中变量注册表的更多详细信息,请参阅链接

如果需要更新/创建Nifi中的任何变量,可以使用 下面是rest api调用:

curl -X GET <URL>/nifi-api/process-groups/<process-group-id>/variable-registry
bash$curl-i-H'内容类型:application/json'-X POST-d'{\
“processGroupRevision”:{\
“clientId”:“\
“版本”:0\
},\
“variableRegistry”:{\
“processGroupId”:“\
“变量”:[{\
“变量”:{\
“名称”:“\
“值”:”\
}\
}]\
}\
}'/nifi api/进程组//变量注册表/更新请求
此curl调用将更新值

  • 如果变量已定义且值已更改,则停止并启动所有受影响的控制器服务和处理器。
  • 如果变量尚未定义,则使用定义的值创建新变量
如何获取客户ID?

您可以进行以下Get Rest api调用:

curl -X GET <URL>/nifi-api/process-groups/<process-group-id>/variable-registry
curl-xget/nifiapi/processgroups//变量注册表
从响应中,您可以获得clientID详细信息。

所有变量(键、值)都存储在变量注册表中,当我们更新/创建变量时,我们将在后端进行更新请求rest api调用

如果您正在构建自定义处理器以使用
变量
,则需要
创建处理器
启用表达式语言,然后可以使用
nifi表达式语言引用变量${variable\u name}
将在运行时替换为
变量值

有关NiFi中变量注册表的更多详细信息,请参阅链接

如果需要更新/创建Nifi中的任何变量,可以使用 下面是rest api调用:

curl -X GET <URL>/nifi-api/process-groups/<process-group-id>/variable-registry
bash$curl-i-H'内容类型:application/json'-X POST-d'{\
“processGroupRevision”:{\
“clientId”:“\
“版本”:0\
},\
“variableRegistry”:{\
“processGroupId”:“\
“变量”:[{\
“变量”:{\
“名称”:“\
“值”:”\
}\
}]\
}\
}'/nifi api/进程组//变量注册表/更新请求
此curl调用将更新值

  • 如果变量已定义且值已更改,则停止并启动所有受影响的控制器服务和处理器。
  • 如果变量尚未定义,则使用定义的值创建新变量
如何获取客户ID?

您可以进行以下Get Rest api调用:

curl -X GET <URL>/nifi-api/process-groups/<process-group-id>/variable-registry
curl-xget/nifiapi/processgroups//变量注册表

您可以从响应中获得clientID详细信息。

要使用nifi api和kerberos身份验证更新变量,您需要从nifi api获取令牌并获取版本号,然后将api卷曲以更新变量

  • 获取代币
  • 基尼特 令牌=$(curl-k-X POST--congregate-u:https://nifi_hostname:port/nifi-api/access/kerberos)
  • 获取版本号
  • curl-k-xgethttps://nifi_hostname:port/nifi-api/进程组/PG Id/变量注册表-H“授权:承载$token”
  • 更新变量“网站”
  • curl-k-X-PUThttps://nifi_hostname:port/nifi-api/ProcessGroups/PG-ID/variableRegistry-H'内容类型:application/json'-d'{“processGroupRevision”:{“version”:version\u number},“variableRegistry”:{“processGroupId”:“PG-ID”,“variables”:[{“variable”:{“name”:“web\u site”,“value”:“stackoverflow”}]}'-H“Authorization:bear$token”
    PG-ID是进程组ID

    要使用nifi api和kerberos身份验证更新变量,需要从nifi api获取令牌并获取版本号,然后卷曲api以更新变量

  • 获取代币
  • 基尼特 令牌=$(curl-k-X POST--congregate-u:https://nifi_hostname:port/nifi-api/access/kerberos)
  • 获取版本号
  • curl-k-xgethttps://nifi_hostname:port/nifi-api/进程组/PG Id/变量注册表-H“授权:承载$token”
  • 更新变量“网站”
  • curl-k-X-PUThttps://nifi_hostname:port/nifi-api/ProcessGroups/PG-ID/variableRegistry-H'内容类型:application/json'-d'{“processGroupRevision”:{“version”:version\u number},“variableRegistry”:{“processGroupId”:“PG-ID”,“variables”:[{“variable”:{“name”:“web\u site”,“value”:“stackoverflow”}]}'-H“Authorization:bear$token”
    PG-ID是进程组ID

    还想提到的是,NiFi CLI有一个set-var命令,可以帮助自动化前面提到的restapi调用 curl -k -X PUT https://nifi_hostname:port/nifi-api/process-groups/PG-ID/variable-registry -H 'Content-Type: application/json' -d '{"processGroupRevision":{"version":version_number},"variableRegistry":{"processGroupId":"PG-ID","variables":[{"variable":{"name":"web_site","value":"stackoverflow"}}]}}' -H "Authorization: Bearer $token"