是否可以在Node-Red流中编辑配置节点?

时间:2017-06-27 07:27:48

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

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

有没有办法在Node-Red中执行此操作?

谢谢!

2 个答案:

答案 0 :(得分:1)

除非节点实现专门允许动态配置,否则这不是Node-RED通常所做的事情。

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

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

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

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

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

答案 1 :(得分:0)

您可以使用所需的凭据作为环境变量更新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-dynamodb节点时,这对我来说非常合适。只需将节点中的凭据留空即可从环境变量中获取。