iT邦幫忙

1

[Deploy to Render] 用免費方案部署 LINE Bot

  • 分享至 

  • twitterImage
  •  

從發佈第一篇什麼是 Render 至今,Render 增加了很多新功能,像是 SSHRedisDDOS protectionREST API。不過在我看來,對於使用者來說最有價值的新功能莫過於 免費方案(free plan) 了!拜新一輪募資順利之賜,Render 總算 短時間不會倒 有本錢提供免費的服務,這不僅可以吸引更多使用者試用 Render,也讓 PaaS(Platform as a service)霸主 Heroku 的免費使用者願意搬移到 Render。畢竟同樣免費,Render 有許多優於 Heroku 的優勢值得使用者考慮。

Render 有提供從 Heroku 搬家過來的小工具

免費方案的網路服務(Web Service)

Render 免費方案的網路服務提供和最便宜的付費方案一樣多的記憶體以及少一點的 CPU。不同的是,免費方案的網路服務只會在有請求(request)時運行,假如 15 分鐘內沒有收到任何請求,Render 就會把這個網路服務關掉,一直到有人再次請求,Render 才會重新啟動這個網路服務。一般來說,網路服務的啟動需要額外的時間做初始化,因此第一個請求的回覆時間會比較長。

對使用者來說,在一個帳號底下可以建立多個免費方案的網路服務,不過一個月最多只有 750 小時的運行時間。舉例來說,假如你只有一個免費方案的網路服務,這個網路服務可以持續運作(24 小時 * 31 天 = 744 小時);假如你有兩個免費方案的網路服務,這兩個網路服務加起來的運做時間就不能超過 750 小時,超過之後就會被關掉。

免費方案的網路服務還有一些小限制,不過大致來說 Render 付費方案的網路服務有的功能,像是 Custom DomainsPull Request PreviewsLog Streams,免費方案都有支援。

假如對免費方案的實作細節有興趣,可以參考這篇 blog

免費方案的 PostgreSQL 資料庫

Render 免費方案的 PostgreSQL 資料庫提供和最便宜的付費方案一樣的記憶體、CPU和硬碟。不同的是,免費方案的資料庫只會存活 90 天,90 天後你可以再建立另一個全新的免費方案資料庫。也就是說,只要你的應用程式可以容許短暫的時間無法連接資料庫,你可以在資料庫 90 天期滿前匯出所有資料,再建立一個新的免費方案資料庫並匯入資料,「邏輯上」你就有一個跟付費方案差不多的 PostgreSQL 資料庫。

Render 也提供免費的 Redis

用免費方案部署 LINE Bot

「免費」當然美好,不過平心而論也不是那麼「完美」,還是有一些限制 當然啦不然誰要用付費方案啊 。Render 不是慈善機構,免費方案降低使用門檻,最終目的當然還是希望使用者喜歡 Render 的服務而願意升級成付費方案。

跟過去 7 天試用期的方式不同,免費方案的網路服務可以一直用,也沒有數量限制,因此最適合用來部署一些實驗性質 自嗨 的網路服務。這邊就來介紹如何用 Render 的免費方案部署自己寫的 LINE Bot。

LINE Bot SDK

LINE 或 LINE Bot 應該不用多介紹了。LINE 提供各種程式語言的 SDK幫助開發者建立自己的 LINE Bot,每個 SDK 都有範例程式。這邊示範用簡單的步驟將 LINE Bot 的範例程式部署到 Render:

1. 選擇你要開發的程式語言

這些 repo 中的render.yaml(Java 的還有Dockerfile)包含部署到 Render 需要的資訊,像是範例程式如何 build、如何啟動。你可以直接使用這些 repo,或是 fork 出來做需要的修改,例如當render.yaml有多個範例時選擇想要部署的範例。

假如你已經有自己的 LINE bot,你也可以複製render.yaml到你的 repo,然後將buildCommandstartCommand改成對應的值。

2. 按下DEPLOY TO RENDER連結,畫面會轉到 Render 的 Dashboard

這邊需要一個註冊好的 Render 帳號,註冊帳號不需要信用卡資料。前一步驟選擇的 LINE Bot 範例也都是用 Render 免費方案的網路服務部署,因此不會有意外的帳單。

3. 在 Render 的 Dashboard 輸入 LINE Channel secret 和 access token,開始部署


LINE 的文件有詳細地講解如何在 LINE Developers Console 建立 Provider 和 Channel。Channel secret 和 access token 可以在建立的 Channel 中的Basic settingsMessaging API找到。

4. 更新 LINE Channel 的Webhook settings

Render 的 Dashboard 會給你一個 https://line-bot-<英文數字字串>.onrender.com 的網址。這個網址會指到你在 Render 部署的網路服務。

將這個網址接上/callback後更新 LINE Channel 的Webhook settings,LINE 會把任何人傳到你的 LINE bot 的訊息轉傳到這個網路服務,你就可以在網路服務中設計回應的邏輯。

5. 用手機上的 LINE app 掃描 Channel bot 的 QR code

在 LINE Developers Console 找到 Channel bot 的 QR code。加入這個好友後,就可以測試你的 LINE Bot

echo 範例只支援文字訊息,你傳什麼他就回什麼。kitchensink 範例支援得比較多,傳給他表情符號他也會回。

LINE Login 和 LINE Front-end Framework (LIFF)

除了 LINE Bot,這邊也提供將 LINE LoginLIFF 範例程式部署到 Render 的 repo。要注意的是,在建立 LINE Channel 時 Channel type 要選擇 LINE Login

結語

網路上搜尋了一下,大部分 LINE Bot 的教學文件都是部署到 Heroku 或是用 ngrok 連到本機。希望這篇教學文件可以吸引更多人試用 Render 的免費方案來開發和營運 LINE Bot。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
arguskao
iT邦新手 4 級 ‧ 2022-06-02 08:33:29

感謝寫這篇文章,提供一個和Heroku類的服務,不過他的優勢比Heroku如何?

我要留言

立即登入留言