วันพุธที่ 8 พฤษภาคม พ.ศ. 2567

ปัญหาของการย้าย flows.json ข้าม Node-RED Instance

ในการการย้ายให้ Copy ไฟล์ flows.json ในโฟลเดอร์ .node-red แค่ไฟล์เดียวพอ หาก Copy ไฟล์ flows_cred.json ไปด้วย จะเกิด Error ทำให้ Run Node-RED ไม่ได้ แบบนี้


เพราะไฟล์ flows_cred.json ถูกเข้ารหัส (encrypted) ไว้ ซึ่ง Node-RED จะ Generate Random Key ขึ้นมา หากไม่ได้กำหนดไว้ใน credentialSecret ของไฟล์ settings.js ทำให้เวลาย้ายไฟล์ flows_cred.json ไปยัง Instance ใหม่ Node-RED จึงถอดรหัส (decrypted) ไม่ได้

วิธีแก้ไขคือลบไฟล์ flows_cred.json ออกให้เหลือแต่ flows.json จากนั้น Run Node-RED ขึ้นมาจะสามารถ Run ได้แต่จะพบ Warning ตามรูปด้านล่าง เนื่อง Node-RED ไม่พบไฟล์ flow_cred.json


จากนั้นทำการแก้ไขไฟล์ settings.js โดย Uncomment credentialSecret แล้วตั้งรหัสตามที่ต้องการ


จากนั้น Restart Node-RED ขึ้นมาใหม่ จะเหลือแค่ Warning Encrypted credentials not found เนื่องจากยังไฟล์ flows_cred.json ยังไม่ถูก Generate ขึ้นมาใหม่


ให้กด Deploy ใน Node-RED อีกครั้ง Node-RED จะ Generate flows_cred.json ขึ้นมาใหม่ จากนั้นลอง Restart Node-RED ขึ้นมาอีกครั้ง Warning Encrypted credentials not found ก็จะหายไป ใช้งานได้ปกติแล้ว


ต่อไปหากต้องการย้าย flows.json และ flows_cred.json อีก ก็แค่แก้ไข credentialSecret ในไฟล์ settings.js ให้มีค่าเดียวกัน เท่านี้ก็สามารถย้าย Flow ข้าม Instance ได้อย่างรวดเร็วและง่ายดายแล้ว

ไม่มีความคิดเห็น:

แสดงความคิดเห็น