【问题标题】:Is it possible to edit configuration nodes in a Node-Red flow?是否可以在 Node-Red 流中编辑配置节点?
【发布时间】:2018-02-05 03:41:32
【问题描述】:

在 Node-Red 中,我正在使用一些 Amazon Web Services 节点(来自模块 node-red-node-aws),我想从文件中读取一些配置设置(例如访问密钥 ID 和密钥S3 节点的密钥),但我找不到动态设置所有内容的方法,因为此配置必须在配置节点中进行,不能在流程中使用。

有没有办法在 Node-Red 中做到这一点?

谢谢!

【问题讨论】:

    标签: amazon-web-services configuration node-red


    【解决方案1】:

    除非节点实现特别允许动态配置,否则 Node-RED 通常不会这样做。

    我见过的一种方法是在运行时使用管理 REST API 自行更新流程 - 请参阅 https://nodered.org/docs/api/admin/methods/post/flows/

    这要求您首先获取当前流配置,使用所需值修改流定义,然后将其发布回来。

    这种方法并不适用于所有情况;配置节点仍然只有一个活动配置。

    如果配置静态保存在文件中,另一种方法是在启动 Node-RED 之前将它们插入到您的流程配置中 - 即,在您插入凭据的流程中拥有一个占位配置节点配置。

    最后,您可以使用环境变量:如果您将配置节点的属性设置为类似于$(MY_AWS_CREDS),那么运行时将在启动时替换该环境变量。

    【讨论】:

    • 谢谢,我会试验一下,告诉你什么对我有用!
    • 最后,我最终使用 shell 脚本从命令行配置和使用 AWS 服务,我认为这更容易设置,也更简洁。无论如何感谢您的帮助!
    【解决方案2】:

    您可以更新您的 package.json 启动脚本以使用所需凭据作为环境变量启动 Node-RED:

    "scripts": {
        "start": "AWS_SECRET_ACCESS_KEY=<SECRET_KEY> AWS_ACCESS_KEY_ID=<KEY_ID> ./node_modules/.bin/node-red -s ./settings.js"
    }
    

    当我使用node-red-contrib-aws-dynamodbnode 时,这非常适合我。只需将节点中的凭据留空,它们就会从您的环境变量中获取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多