从 API 更新 Nifi 敏感属性

Updating Nifi Sensitive properties from API

我们正在使用 Nifi 注册表和 Azure Devops 为 Nifi 开发 CI-CD。我们希望它是完全自动化的,并且在一个问题上被阻止。在我们的处理器中,我们使用密码等敏感属性。我们如何从 rest API 或 nipyapi 模块更新它们?

是否支持或推荐的方式是什么?

您可以使用 UI、API 或命令行工具(如 NiFi CLI 或 NiPyAPI)设置敏感 属性,方法与您设置的方式相同任何其他 属性。如果您已使用 TLS 保护您的 NiFi 实例,则您的脚本和 NiFi 之间的所有调用都将被加密。您可以为脚本颁发自定义客户端证书以用于身份验证,或者如果您已配置它,则使用 Kerberos/SPNEGO。

敏感属性设置与任何其他 属性 设置一样简单。

示例片段,使用 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)