Nifi:如何独立于环境读取AWSCredentialsProviderControlerService的访问/秘密密钥

问题描述

我们当前正在设置属性文件的路径,该文件包含AWSCredentialsProviderControlerService的凭据文件的秘密/访问密钥。问题是,每次运行nifi工作流程时,我们都在更改prod和non prod的属性路径。尝试不更改凭据文件路径上的配置,以便无论prod和non prod都将读取访问/秘密密钥。由于凭据文件不支持Nifi Expresion语言,因此尝试利用访问密钥/秘密属性$ {ENV:equalsIgnoreCase(“ prod”):ifElse($ {ACESS_PROD},$ {ACESS_NONPROD})}我们面临的问题是无法将这些访问密钥/秘密密钥存储到注册表。因此无法实施此更改。无论Nifi中的环境如何,都有什么方法可以读取访问/秘密密钥。当前,我们将1个属性文件用于非prod nifi,将2nd个属性文件用于prod属性。在此设置中,从prod切换到non prod时,需要手动将其更改为凭证文件路径。尝试无缝工作而不更改凭据文件的路径。有什么办法可以做到这一点?

enter image description here

解决方法

使用AWSCredentialsProviderControlerService的过程不支持参数或变量,但是AWSCredentialsProviderControlerService“凭据文件”属性支持“参数上下文”作为条目,请在您的解决方案中使用它。

示例:

触发某些事件-> RouteOnAttribute->如果是Prod(运行executestreamcmd并更改参数上下文值以指向prod credfile),否则如果是DEV(运行executestreamcmd并将参数上下文值更改为指向prod credfile)->然后运行您的AWS处理器。

您可以使用工具包客户端来编辑参数上下文或事件nipyapi python模块。 Tohu不会很快。