Apache nifi 初学者在docker实例中使用ApacheNIFI

Apache nifi 初学者在docker实例中使用ApacheNIFI,apache-nifi,Apache Nifi,所以,我希望,基本上,能够使用我已经拥有的模板,旋转一个运行Nifi的容器。我对集装箱非常陌生,对Nifi也相当陌生。我想我知道如何启动Nifi容器,但不知道如何使它每次都自动运行我的模板 您可以使用apache/nifi作为起点,并使用DockerRUN/COPY命令注入所需的流。有三种方法可以将现有流加载到NiFi实例中 将流导出为模板(包含导出流段的XML文件),并将其作为模板导入正在运行的Nifi实例。这需要运行“目标”NiFi实例并使用NiFi API 创建所需的流,通过复制$NiFi

所以,我希望,基本上,能够使用我已经拥有的模板,旋转一个运行Nifi的容器。我对集装箱非常陌生,对Nifi也相当陌生。我想我知道如何启动Nifi容器,但不知道如何使它每次都自动运行我的模板

您可以使用
apache/nifi
作为起点,并使用Docker
RUN
/
COPY
命令注入所需的流。有三种方法可以将现有流加载到NiFi实例中

  • 将流导出为模板(包含导出流段的XML文件),并将其作为模板导入正在运行的Nifi实例。这需要运行“目标”NiFi实例并使用NiFi API
  • 创建所需的流,通过复制
    $NiFi_HOME/conf/flow.xml.gz
    从“源”NiFi实例手动提取整个流,并覆盖“目标”NiFi的
    conf
    目录中的
    flow.xml.gz
    文件。这不需要运行目标NiFi实例,但必须在目标NiFi启动之前运行
  • 使用版本控制源NiFi的原始流段,并使其可用于目标NiFi。对于您的场景来说,这似乎是杀伤力过大 我建议选择2,因为你应该有你想要的流量。只需在您的应用程序中使用
    COPY/src/flow.xml.gz/destination/flow.xml.gz


    如果您确实希望它“每次运行我的模板”,那么您可能希望在复制/保存
    flow.xml.gz
    文件时确保处理器都处于启用状态(显示“播放”图标),并且在
    nifi.properties
    nifi.flowcontroller.autoResumeState=true

    共享代码/模板/您尝试的内容模板是否不相关?它可以是任何模板。我还没有任何代码可以分享,因为我不知道从哪里开始。@R.Dyer-Evans,问题太广泛了。您可以从模板本地创建一个
    flow.xml.gz
    ,并将其放入docker容器中,以便nifi运行它。您好,感谢您的回答,您能否确认所有变量(包括敏感变量)都将包含在flow.xml.gz中?是的,所有变量,包括敏感变量,都包含在
    flow.xml.gz
    文件中。如果使用不同的
    NiFi.sensitive.props.key
    值部署到NiFi实例,则敏感值的加密密钥将不同且不兼容。您可以确保这些值相同,或者使用NiFi Toolkit encrypt config工具迁移密钥。