Apache nifi 如何在getMongo处理器中参数化URI

Apache nifi 如何在getMongo处理器中参数化URI,apache-nifi,Apache Nifi,我的流程如下所示=>GenerateEFF->updateAttribute->getMongo 我得到了以下例外 `Caused by: java.lang.IllegalArgumentException: The connection string is invalid. Connection strings must start with 'mongodb://' at com.mongodb.ConnectionString.<init>(Connectio

我的流程如下所示=>GenerateEFF->updateAttribute->getMongo

我得到了以下例外

`Caused by: java.lang.IllegalArgumentException: The connection string is invalid. Connection strings must start with 'mongodb://'
        at com.mongodb.ConnectionString.<init>(ConnectionString.java:203)
        at com.mongodb.MongoClientURI.<init>(MongoClientURI.java:176)
        at com.mongodb.MongoClientURI.<init>(MongoClientURI.java:158)
        at org.apache.nifi.processors.mongodb.AbstractMongoProcessor.createClient(AbstractMongoProcessor.java:191)`
`原因:java.lang.IllegalArgumentException:连接字符串无效。连接字符串必须以“mongodb://”开头
位于com.mongodb.ConnectionString。(ConnectionString.java:203)
位于com.mongodb.MongoClientURI(MongoClientURI.java:176)
位于com.mongodb.MongoClientURI(MongoClientURI.java:158)
位于org.apache.nifi.processors.mongodb.AbstractMongoProcessor.createClient(AbstractMongoProcessor.java:191)`
我正在“updateAttribute”中设置mongoURI,我也可以在ff属性中看到它。在getMongo中,我将URI设置为=>${mongo_URI}

问题是,一旦我启动流,处理器就会给出错误,甚至在ff到达处理器之前。若处理器允许表达式语言,它不应该等待ff到达它,以便我们可以使用某种类型的表达式吗


我错过什么了吗?或者URI必须硬编码?

根据
NiFi-1.8.0
文档
Mongo URI

  • 支持表达式语言:true,但(将仅使用变量注册表进行计算)
因此,此处理器没有获取流文件属性的范围

将MongoURI保持为变量,然后处理器将获取变量的值


好的,我面临的另一个问题是,一旦getMongo完成,我就失去了所有属性,因为mongo似乎正在创建新的FF。但是,在哪里存储运行时值呢?我总是这样认为,并使用updateAttribute初始化变量,然后在流程中使用它们。但现在我的流程中有了getMongo,我失去了所有变量。注册表变量对此有用吗?如果没有,那么解决方案是什么?如果是,那么我可以在执行期间更新它们吗?在下次运行之前,它们会回到初始值吗?我在1.6上version@RakeshPrasad,此问题已在NiFi-1.8 jira中解决,若要解决此问题,请参阅此链接。。谢谢,升级不是一个选项,所以需要解决。