Node-RED: 使用 CLI 实现自动化
通过 Stackhero CLI 以编程方式启动 Node-RED、获取其凭证并更改其配置
👋 欢迎来到 Stackhero 文档!
Stackhero 提供即用型 Node-RED 云 解决方案,具有众多优势,包括:
- 包含 MQTT 服务器(Mosquitto)。
- 完全访问 Node-RED 管理界面。
- 包含 Node-RED 仪表板。
- 包含无限和专用的 SMTP 电子邮件服务器。
- 只需点击即可轻松更新。
- 使用 HTTPS 保护的可定制域名(例如,https://node-red.your-company.com)。
- 由私有和专用 VM提供的最佳性能和强大安全性。
节省时间并简化您的生活:只需 5 分钟即可试用 Stackhero 的 Node-RED 云托管 解决方案!
本指南将演示如何通过命令行创建 Node-RED 服务、读取其凭证并更新其配置,全程无需在控制台点击操作。非常适合脚本、CI 流水线和 AI agent 场景。
我们将使用 Stackhero CLI 完成所有操作。如果您尚未安装,可以通过以下命令进行安装:
curl -fsSL https://www.stackhero.io/install.sh | sh
1. 认证登录
最简单的方式是通过浏览器登录。当您运行登录命令时,CLI 会自动打开网页,您只需在网页上授权访问,无需在 CLI 输入密码或 2FA 验证码。
stackhero login
登录后,您的凭证会被本地保存,后续 CLI 命令会自动使用。
对于完全自动化的环境(如脚本或 CI 流水线),您可以选择使用非交互式的访问令牌。您可以在控制台(账户 > Access tokens)创建令牌,然后将其导出为环境变量。CLI 及您运行的任何脚本都会自动读取该变量。
export STACKHERO_TOKEN="usr-xxxxxx:your-token"
2. 查找 Node-RED 服务商店
接下来,您可以列出账户下可用的 Node-RED 服务商店。CLI 直接接受商店名称(node-red),无需查找或复制任何 ID。
# 列出 Node-RED 服务商店(如管理多个组织,可加 --organization)
stackhero services-store-list --name="node-red"
后续命令中,您可以直接使用商店名称 node-red,也可以从列表中选择具体的 svs-xxxxxx ID。
3. 选择实例规格和区域
# 列出服务商店可用的实例规格(使用 NAME 列作为 --instance 参数)
stackhero instances-store-list --service-store=node-red
# 列出可用区域(如 "europe")
stackhero regions-list
4. 创建服务
以下是一个示例脚本:创建一个 stack,将您的 Node-RED 服务添加到 stack,等待服务启动,获取其配置信息(包括自动生成的凭证),然后应用新的配置。
#!/bin/bash
set -e
export STACKHERO_TOKEN="usr-xxxxxx:your-token"
serviceStore="node-red" # Node-RED 服务商店名称(见第 2 步)
instance="..." # 第 3 步获取的实例规格
region="europe" # 第 3 步获取的区域名称
# 为您的服务创建一个 stack(默认使用您的组织,如有需要可加 --organization)
stackId=$(stackhero --format=script stack-create \
--name="My Node-RED stack")
echo "Stack created: ${stackId}"
# 将 Node-RED 添加到 stack(名称会自动解析)
serviceId=$(stackhero --format=script service-add \
--stack="My Node-RED stack" \
--service-store="${serviceStore}" \
--instance="${instance}" \
--region="${region}")
echo "Service added: node-red"
# 等待服务完全启动(可能需要几分钟)
stackhero service-wait-for --service="node-red"
# 获取服务配置,包括自动生成的凭证
stackhero service-configuration-get --service="node-red" --format=json
5. 获取凭证
service-configuration-get 命令会返回服务的完整配置信息,包括自动生成的密码和连接信息。输出为 JSON 格式,方便在脚本和自动化流程中使用。
stackhero service-configuration-get --service=svc-xxxxxx --format=json
6. 更改配置
您可以先查看配置 schema 示例,然后应用自定义配置。当您更新配置时,服务可能会自动重启以应用更改。
# 查看服务的配置 schema 及示例
stackhero service-configuration-example --service=svc-xxxxxx
# 应用自定义配置(如有需要服务会自动重启)
stackhero service-configuration-set \
--service=svc-xxxxxx \
--configuration='{ "...": "..." }'
# 等待新配置生效
stackhero service-wait-for --service=svc-xxxxxx
就是这样。您已经完整体验了整个生命周期:启动服务、获取凭证、重新配置服务,全部可通过脚本自动化完成。如需深入了解,请参阅完整 CLI 文档,其中也包含了本指南演示的非交互式 STACKHERO_TOKEN 认证方式。