首页 > 解决方案 > 使用 nipyapi 从处理器中删除属性

问题描述

Nipyapi 版本:最新

NiFi 版本:1.11

NiFi-Registry 版本

Python版本:3.7

操作系统:ubuntu

描述

我想通过nipyapi删除RouteOnAttribute中的特定道具,请问我该怎么做,删除处理器配置中的属性的解决方案是什么。

我做了什么

适当的价值

Routing Strategy                                       Route to Property name
p10001                                                 ${project_id:matches('p10001')}
p11012                                                 ${project_id:matches('p11012')}

例如,我想删除所有这些:

与其单击删除,不如使用 nipyapi !

p11012                                                 ${project_id:matches('p11012')}  [remove]

标签: python-3.xapache-nifinipyapi

解决方案


这是我在 Github 问题上针对未来需求提供的答案:

from nipyapi import canvas, nifi
# Test adding a custom Property
test_prop = {conftest.test_basename: 'test'}
_ = r1.component.config.properties.update(test_prop)
r2 = canvas.update_processor(
    r1,
    nifi.ProcessorConfigDTO(properties=r1.component.config.properties)
)
assert conftest.test_basename in r2.component.config.properties.keys()
# Test removing a property
r3 = canvas.update_processor(
    r2,
    nifi.ProcessorConfigDTO(properties={conftest.test_basename: None})
)
assert conftest.test_basename not in r3.component.config.properties.keys()

推荐阅读