我们正在使用 Nifi 注册表和 Azure Devops 为 Nifi 开发 CI-CD。我们希望它是完全自动化的,并且在一个问题上被阻止。在我们的处理器中,我们使用密码等敏感属性。我们如何从 rest API 或 nipyapi 模块更新它们?
是否支持或推荐的方式是什么?
我们正在使用 Nifi 注册表和 Azure Devops 为 Nifi 开发 CI-CD。我们希望它是完全自动化的,并且在一个问题上被阻止。在我们的处理器中,我们使用密码等敏感属性。我们如何从 rest API 或 nipyapi 模块更新它们?
是否支持或推荐的方式是什么?
敏感属性设置与任何其他属性设置一样简单。
示例代码段,使用 nipyapi 更新 GetTwitter 处理器中的敏感属性。
# Custom method to return all processors in a process group by using group name;
# Equivalent to nipyapi.canvas.list_all_processors(pg_id='root') but accepts group name
def get_all_processors_in_group(processgroup_name, "name"):
# ...
# ...
def update():
processors_list = get_all_processors_in_group(processgroup_name, "name")
processor = ... # Get 'GetTwitter' processor
props = processor.component.config.properties
props["Consumer Key"] = "Random key"
props["Consumer Secret"] = "Random secret" # Sensitive value
props["Access Token"] = "Random token"
props["Access Token Secret"] = "Random token secret" # Sensitive value
config = processor.component.config
config.properties = props
nipyapi.canvas.update_processor(processor, config)
您可以使用 UI、API 或命令行工具(如 NiFi CLI 或 NiPyAPI)设置敏感属性,就像设置任何其他属性一样。如果您已使用 TLS 保护您的 NiFi 实例,则您的脚本和 NiFi 之间的所有调用都将被加密。您可以为脚本颁发自定义客户端证书以用于身份验证,或者使用 Kerberos/SPNEGO(如果已配置)。