[Tools] 透過 ngrok 轉發讓 localhost 浮出檯面

透過 ngrok 轉發,將 host 在 localhost 的服務/站台露出至 Internet 中,省去 line bot 開發時需頻繁地佈署 Webhook 才能驗證功能的困擾。

前言


最近筆者有稍微玩一下 line bot 開發,發現若要除錯或驗證功能都需要不斷地將程式推送到版控中,等待自動佈署到 line bot 綁定的 Webhook 後才會生效,這樣真的是非常麻煩;還好我們可以使用 ngrok 將 host 在 localhost 的服務/站台透過轉發露出至 Internet 中,這樣在本機一修改代碼就直接生效的感覺真是太美妙了;另外,有時候在開發期間,會想要將本機開發中網頁版本跟客戶確認效果,此時透過 ngrok 也可以輕鬆達陣。

 

 

申請 ngrok 帳號


請至 ngrok-signup 申請帳號,完成後可以獲得一組代表此帳號的 auth token 資料。

 

 

取得 ngrok 與連結帳號


依各作業系統下載 ngrok 解壓縮 (支援各平台 windows, mac os x, linux),切換目錄至該檔案位置後,輸入以下指令來連結至你剛剛申請的帳號 (自行調整 auth token 資訊),執行後產出 ngrok.yml 檔案即表示成功,這步驟只需執行一次。

$ ngrok authtoken 8T89n51s4RVbqjxMoqyw_JT8oooooooYccp9NCved

 

 

露出本機站台至 Internet 


若需要將本地端 9527 port 露出至 Internet 中,可使用以下指令。

$ ngrok http 9527

 

現在開始就可以透過以下兩個「隨機」網址轉發 Request 來訪問本機 9527 port 站台囉!

  • http://1f81a70e.ngrok.io
  • https://1f81a70e.ngrok.io

 

 

效果驗證


驗證一下,目前本機 9527 port 站台如下

 

透過 ngrok 產生的 URL 確實可以訪問到 host 在本機 9527 port 的站台頁面。

 

在做 line bot 測試時只接把 Webhook 設定導向該 URL,就可以輕鬆地在本機調整邏輯並驗證效果了。

 

 

使用限制


由於 ngrok 是可以免費使用,所以會有一些限制存在,例如產生的轉發 URL 是隨機的無法固定,只能執行單個 ngrok 轉發功能,並且每分鐘限制只能有 40 個 connections,不過如果只是拿來做測試應該是綽綽有餘;另外,它也提供了許多方案可以供開發者選購,請自行參考以下圖片中各方案提供的功能。

 

 

參考資訊


 Ngrok – 讓本機也可以開發 webhook 免部署環境的神器

在本地端使用 Nodejs & Ngrok 進行 Line Bot 開發測試

 

 


希望此篇文章可以幫助到需要的人

若內容有誤或有其他建議請不吝留言給筆者喔 !