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 pipeline)及 AI agent。

我們將會使用 Stackhero CLI 來執行所有操作。如果您尚未安裝,可以透過以下指令安裝:

curl -fsSL https://www.stackhero.io/install.sh | sh

最簡單的開始方式是透過瀏覽器登入。當您執行登入指令時,CLI 會自動開啟網頁,讓您授權存取權限。您無需在 CLI 輸入密碼或 2FA 驗證碼。

stackhero login

登入後,您的認證資料會儲存在本機,之後所有 CLI 指令都會自動使用。

若您是在完全自動化的環境(如腳本或 CI pipeline)中操作,建議使用非互動式的 access token。您可以在控制台(帳戶 > Access tokens)建立,然後將其設為環境變數。CLI 及所有腳本都會自動讀取該變數。

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

接下來,您可以列出帳戶下可用的 Node-RED 服務 store。CLI 可直接接受 store 名稱node-red),無需查找或複製任何 ID。

# 列出 Node-RED 服務 store(如管理多個組織可加上 --organization)
stackhero services-store-list --name="node-red"

您可以在後續指令中直接使用 store 名稱 node-red,或從清單中選擇特定的 svs-xxxxxx ID。

# 列出服務 store 可用的實例規格(使用 NAME 欄位作為 --instance)
stackhero instances-store-list --service-store=node-red

# 列出可用地區(如 "europe")
stackhero regions-list

以下是一個範例腳本,會建立一個 stack,將您的 Node-RED 服務加入其中,等待服務啟動,取得其設定(包括自動產生的認證資料),然後套用新的設定。

#!/bin/bash
set -e

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

serviceStore="node-red"   # Node-RED 服務 store 名稱(見步驟 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

service-configuration-get 指令會回傳服務的完整設定,包括自動產生的密碼及連線資訊。輸出為 JSON 格式,方便腳本及自動化流程使用。

stackhero service-configuration-get --service=svc-xxxxxx --format=json

您可以先查看設定 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 認證方式。