[Heroku][Flask] Couldn't find that process type (web).
問題描述
朋友想製造一個 LINE 機器人,自學學習撰寫 Python Flask Web Framework ,並部署到 Heroku 上,預期傳訊息時機器人會自動回覆相同的訊息內容,但卻沒有顯示在對話視窗內,於是拜託我幫他看。
首先要看的就是 Heroku console log ,下 heroku logs --tail
從裡面一定可以找出一些蛛絲馬跡,果不其然看到一些訊息,從日誌檔可得知程式是包版成功的,但很顯然程式發生錯誤, Web server 根本就沒有啟動,官方網站給出的解決方法是下 heroku ps:scale web=1
這組指令,以手動方式將 Web server 程序部署到他們的引擎 dyno 上。
Heroku 上日誌檔
1 | 2022-03-12T05:20:20.000000+00:00 app[api]: Build succeeded |
Heroku H14 錯誤代碼解釋
1 | H14 - No web dynos running |
你以這樣就解決問題了嗎?並沒有!我下了這道指令回覆訊息仍是找不是 Web Server 的程序,後續我確認了 Python 有沒有語法上的錯誤、部署腳本、套件 requirements.txt,也嘗試在本機上執行,皆無問題。
1 | gordonfang$ heroku ps:scale web=1 |
解決方法
隔一天再次檢查才發現原來朋友寫的 Procfile 多了副檔名,是 Procfile.txt , Procfile 是 Heroku 的部署腳本,告訴他包版完後要跑哪一個檔案將 Web Server 啟動起來,重新調整完後機器人就能順利回覆訊息。
1 |
|
[Heroku][Flask] Couldn't find that process type (web).
https://gordonfang199649.github.io/2022/03/12/Heroku-Couldn-t-find-that-process-type-web/