Hello,我是 KK,今年的鐵人賽,想跟大家分享架設 n8n 遇到的一些挑戰跟意外,就讓我們一起學習吧。
在 [[鐵人賽 day26 - 用 n8n 備份自己到 github (二) - n8n API]] 我們拿到了 n8n API Key,也試了一下 Playground 確實能拿到我們的 workflows。但你可能會想:看起來就是要用那個 curl 呼叫 API 對吧?
當然......不是。我一開始也是很工程師的思維,也是往這個方向想的。但其實 n8n 的內建 node 就有一個 n8n node (一個遞迴的概念),只要我們有 n8n API Key,就不需要自己寫 code 下 parameters。
第一步當然是設定 trigger。既然要自動處理,那當然就選 Schedule Trigger 來排程,我建議一天執行一次應該是足夠了,如果你很不安心,可以考慮設定更短的排程。
接下來,在右邊的搜尋欄輸入 n8n
,第一個就是我們需要的 node。
點擊之後,一樣會需要設定一次 credential。
/api/v1
。又或是去 playground 那裡複製,都是相同的。設定完成之後,就可以選用 n8n node 的 Get many workflows
基本上這裡比 playground 還要簡單,直接按下 Execute step
後,就能在右邊看到跟 playground 相同的結果。
github 相關的操作,官方有給一份參考範例 Push and update files in GitHub | n8n workflow template。大致上就是 Get File -> Decode -> Update
但這是為了那些要 update 原有檔案的做法,我們這裡稍稍複雜一點點,要先 create 然後再 update,並且是直接覆蓋掉。
這是因為 edit 不包含 create,如果原始檔不存在,直接 edit 會報錯。不過我們可以先 list files,檢查該檔案是否存在。如果不存在,就用
create`,反之則用 edit
merge
這個 node。不過沒關係我已經先寫好一版了,有興趣的可以下載試玩一下。