Flask Servicer 僅可內部存取卻無法被外部主機存訪問

flask 是基於python程式語言的後端服務架構
有鑒於python的高階語言特性,Flask的程式碼架構相當簡潔,短短幾行就可以完成一個簡單的服務
相當具有短期雛形驗證的時效優勢

這幾年機器學習、深度學習越來越夯
AI演算法開發工程師完成模型建置後,也會遇到提供相關API接口給前端人員使用的需求
同樣都是採用python程式語言的Flask無疑又更添為首選框架

最近開發案遇到一個神奇的狀況
以前完成 Flask後,都是透過以下的命令方式啟動加載服務

python main.py

結果最近就踢到鐵板
服務在本機存取都沒有問題 偏偏換了其他主機就沒法訪問
為此排查了所有問題 包含防火牆設置等
苦思許久 一直沒找到確切地問題
後來重新翻了一下Flask Official Document
發現了一個建議的啟動指令

export FLASK_APP=main.py
flask run –reload –debugger –host 0.0.0.0 –port 5000

果然順利成功了
腦海中瞬間跟過往的經驗重疊 關鍵不就在 —host 0.0.0.0
前陣子訓練pytorch模型時,為了掌握訓練參數對於模型的訓練成效評估
選用tensorboard作為紀錄輸出呈現平台 那時候也是遇到同樣的問題
如果少了host這個參數 外部主機是無法存取的

最近都是將過往常用的套件更新到最新版本遇到的問題
看起來這已經成了趨勢 特別記錄一下 降低下次自己踩坑的機會

發佈留言