我们正在使用 spring cloud dataflow 2.10.3,在 kubernetes 集群中使用 helm 部署。
我不确定这是一个错误还是出了什么问题,但我们已经看到它发生在所有类型的流、自定义源/接收器/处理器和一些预打包的应用程序中。
本质上,如果我们创建一个流并添加一个无效的部署属性或导致该流的组件之一崩溃,则 scdf 会锁定该属性。此后更改的任何部署属性都不会使用或保存,这意味着我们无法修复无效的属性。
最快的重现方法:
sftp | log
在自由文本部署属性中添加如下内容:
app.sftp.supplier.rename-remote-files-to=archive.someBadProperty()
此 SpEL 无效,会导致 sftp 应用程序崩溃。取消部署,之后我们对属性所做的任何更改都将不会保留。最终我们必须销毁流并重新创建它。
还有其他人遇到过这种情况吗?有什么解决办法吗?
额外问题 对于 sftp 源预打包应用程序,什么是保留原始文件名并仅添加前缀
archive/
的有效 SpEL?
app.sftp.supplier.rename-remote-files-to
属性映射到SftpOutboundGateway.setRenameExpression()
,其中评估表达式的根对象是作为SFTP消息源的结果对此网关的请求Message
。在文档中查看更多信息:https://docs.spring.io/spring-integration/reference/sftp.html。
如果你的目标是明确地将使用的远程文件重命名到
archive
目录,那么你的表达式必须是这样的:
'archive/' + headers.file_remoteFile
(可能没有空格来满足 SCDF 环境...)