Heroku 免費方案退場的轉部署—Railway.app

沒想到這個快遇到 Render 瓶頸

沒想到這麼快就再度發生,上週末的時候,發現部署(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 方案的時候使用。

Some rights reserved
Except where otherwise noted, content on this page is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International license.