apache-nifi - 是否可以在 PutTCP 中使用动态主机名?
问题描述
我有一个简单的流程,应该执行以下操作:
- 监听
http://10.0.0.2:8100/printlabels/<ip address>
POST 请求 - 将内容正文按原样发送到
<ip address>
端口 9100 的打印机服务器。 - 响应成功或错误
我的解决方案是通过HandleHttpRequests Flow 接受 http 请求。默认设置。
成功后,下一个流程是PutTCP,其端口:9100 和主机名:${http.request.uri:substringAfterLast('/'):trim()}
最后,通过HandleHttpResponse向客户端发送 200 或 500 状态响应。
问题是 PutTCP EL 表达式仅限于变量注册表,根本不能使用流文件变量。所以上面的表达式总是空的。
有没有办法将主机名从前一个处理器传递给PutTCP处理器?
解决方案
不,PutTCP 不支持读取 FF 属性来更改目标主机。
您可以使用 ExecuteScript 并使用 Python 或 Groovy 来处理创建动态 TCP 套接字。
推荐阅读
- reactjs - HtmlWebpackplugin 避免编辑 index.html
- visual-studio - 打开任何项目时 Visual Studio 2019 16.6.2 100% cpu 使用率
- hadoop - 如果 Hive 的 reducer 数量与键的数量不同,会发生什么?
- sql - 如何连接 SQL Server 中的表,以便将每一行连接一次
- javascript - How do you pass HTML variables to google app scripts
- javascript - 为什么我们需要在这个例子中使用 THIS 关键字?
- reactjs - 如何在卸载 React 模式登录组件之前更新本地存储值
- python - 在python的setter中调用方法
- laravel - 在 Eloquent 中使用 orWhere()
- reactjs - 使用 Thunk 将数据从 Redux 存储加载到 React 状态