在Node-Red中,我正在使用一些Amazon Web Services节点(来自模块node-red-node-aws),我想从文件中读取一些配置设置(例如访问密钥ID& the S3节点的密钥),但我找不到动态设置所有内容的方法,因为这个配置必须在配置节点中进行,不能在流中使用。
有没有办法在Node-Red中执行此操作?
谢谢!
答案 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
节点时,这对我来说非常合适。只需将节点中的凭据留空即可从环境变量中获取。