0

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

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

4

2 回答 2

3

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

示例代码段,使用 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)
于 2019-08-01T05:17:28.650 回答
1

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

于 2019-08-01T04:50:18.413 回答