Heroku 免費方案退場的轉部署 — Railway.app
沒想到這麼快就再度發生,上週末的時候,發現部署(Deployed)在 Render 上面的 LINT Bot 開始出現了一點問題。本來以為是因為使用免費服務,所以重新開機。沒想到,今天整個停機不能運作。
通常,第一次能夠修復的錯誤,並不會讓我想整個轉換。但因為已經經歷幾次的錯誤,加上今天嘗試了幾個小時都沒有自動恢復正常,讓我開始搖擺,研究了幾篇文章後,開始決定轉換平台。
這次參考了幾篇文章 — 《老牌託管 Heroku 將停止提供免費方案!網友私藏 3 替代平台無痛轉移 | YEE式機器龍》、《Heroku 的 10 大替代品》、《Heroku vs Railway — Which is the best option?》 — 基本上就是希望在 Railway.app 上面進行部署。
百「試」不得其解
相較於在移轉 Render 的時候,要轉部署到 Railway.app 相對遇到比較多的瓶頸。〔延伸閱讀:用其他免費服務取代 Heroku〕
跟之前參考的文章一樣,遇到了一樣的錯誤訊息:
Application Error Is your app correctly listening on $PORT?
我百思不得其解,同步的詢問了文章作者,但還是沒有辦法解決我遇到的情況。上網搜尋,發現原來討論 Railway.app 的文章比起 Heroku 跟 Render 真的少很多。英文的資源如是,中文想當然爾更加困難。
幾個小時就這樣過去,經過幾次的部署,就算已經成功將程式碼部署上去,但進去網址的時候,仍會出現同樣的錯誤訊息。
而在設定 LINE Webhook 的時候,會不斷地看到 503
的錯誤訊息,意思的就是伺服器並沒有無法被使用,我想應該跟錯誤訊息讓服務無法啟動有關係。
「暫停」換條路徑
剛好手邊有其他的事情要忙錄,就把這件事情先擱一邊了!畢竟花了蠻多時間,看到明明顯示部署完成,卻無法使用,一次次的心情,雖然還不到受挫,但被激起想要解決問題的慾望,著實令人感到情緒波動的難受。
幾個小時的沈澱,剛好趁著交通的時間突發奇想,如果真的不行,那就不如砍掉重練。
晚上空出了一段時間後,就開始思考如何砍掉重練這件事情。回憶當初要部署 Render 的時候,當時很幸運網路有人分享文章,這樣的幸運並沒有發生在 Railway.app 上。
畢竟 Railway.app 在 2020 年才推出服務,相對老牌的 Heroku 跟 Render 網路資源的確較為稀少,而且說句真的連官方的說明文件,對我來說都有一點點不明究理,或許他們目標客群都是程式能手,所以文件相對簡化。
換條路徑我把程式重新一段段打上去,還是發現並無助益,一樣面對到相同的情景。心中突然冒出了一句話「砍掉重練」吧!
砍掉重練「套模板」
寫程式是這樣的,現在網路發達,許多高手樂於分享,所以對於我們來說並不需要白手起家,網路上有許多模板套用。而以一個 PaaS 的服務提供商,猜想應該多少也會提供相對應的模板。
根據我自己的技術需求跟經驗,LINE Bot 使用 Python 架設,並且透過 Flask 的方式建立 Webhook,自然打上這兩個關鍵字,幸運的找到了相對的模板。Railway.app 直接提供部署的功能,可以模板直接部署到你的帳號之中,大概幾分鐘的事情,基礎架構就已經在我的專案中成形。
既然有了基礎架構,我就開始慢慢的轉移。有個小技巧可以分享:
從最簡單的方式開始「蓋房子」。
既然我原本的架構,怎麼都無法成行的情況下,那我從最簡單的部署,一次次的搬移。在既有的模板之下,先套上 LINE 提供的模板,然後再一步步的比對自己的跟基礎模板的差異 — 一個區塊、一個區塊的慢慢複製貼上。
Railway.app 是當你有更新的時候,會自動部署的,所以每一次的變動,基本上都會知道是否成功。
最終找到了關鍵點,就是當使用 handler
這個區塊的時候,程式就會跳出上面的錯誤訊息。我其實並不知道為什麼,但是認真研究了一下,看起來新版的範本也已經不用 handler
了,既然如此,順勢開始修改自己的程式碼。
至此,在這一個小時之中,重新部署完成我的 LINE Bot。
Railway.app 收費方式
Railway.app 基本上有提供免費的方案,我也是今天才剛開始使用,還不知道免費的資源 — USD$5 的額度或者 500 小時的使用時間 — 是否足夠,畢竟今天花在測試跟修改的時間,截至目前已經用掉 12 小時的額度。
但看到他的收費模式,我覺得也是相對合理的,每個月會提供 USD$5 的免費額度,可以升級超過免費額度,可以升級到 Developer 方案。
按照我的理解,應該是 $10 的基本費,如果 8GM RAM 跟 100G 儲存空間超額,就依照超額的部分增加費用。
同時還提供每個人可以推薦分享分潤的機制,在此分享我的分潤連結 https://railway.app?referralCode=kFdzUK,當你透過這個連結申請帳號,我也會獲得 $5 未來如果我要升級 Developer 方案的時候使用。
💌 我寫信,也回信,希望能有機會收到你的來信,「訂閱電子報」讓我們從網友變成筆友。👇往下捲動頁面👇直接填入 Email 一同交流,遇見未知的自己。 https://buttondown.email/bamorlove?tag=medium