iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0

程式已經寫好了,現在就是要換一個地方放,可以考慮的方向有雲端或是自架站台。
雲端的話,比較簡單,但是比較資安方面可能會比較讓人擔心,因為你的帳號,密碼,都需要放到雲端去,如果要交易功能的話,連金鑰都要放到雲端去,所以想走這條路的朋友要自己好好考慮。
另一條路就是自架站台,自架站台有幾個關鍵

  • 主機
  • 域名
  • https 憑證
  • 可以設定的 router
  • 固定 ip 或是 ddns

主機的話,我想應該是比較簡單取得的,花錢就行,甚至樹莓派 (raspberry pi) 就可以拿來用了,域名的話,如果不想買,也有免費的域名可以去申請,只是名稱比較沒那麼自由而已,https 憑證的話,可以使用免費的 let's encrypt,再來就是可以設定的 router,因為要設定 port forwarding,將相關的 request 指給我們的主機,最後就是 ip,如果有固定 ip 的話,可以直接指定給域名,如果沒有固定 ip 的話,就需要 ddns 服務,在主機上還要執行一個程式,在 ip 變動的時候,去更新域名綁定的 ip。
這次的分享,主要還是在 Shioaji api,所以就先放到雲端去,原本放在 gcp 的 app engine,可是測試了半天,發現在取得報價的時候,常常會失敗,相關原因還不清楚,後來就改用了 Heroko。雖然還是有機會失敗,不過拿來 demo 倒是還可以,之後如果正式使用,想要穩定一點的環境,可以考慮花點錢解決,免費版的規格大概如下,比較要注意的是 30 分鐘沒有操作的話,會進眠,再一次啟動會花一些時間啟動,反應會慢一點。
heroku free plan

雲端 自架
難易
安全 帳號密碼放雲端,要注意 網路的防火牆,主機的安全性漏洞要自己處理
前置技能 雲端平台的操作技能 1. 主機, 2. 域名, 3. https 憑證 4. router 設定 5. 固定 ip 或是 ddns

如果想要用 Heroku 試試的話,可以照以下的步驟來完成:

  • Heroku 註冊
  • Create New App (建立新app),app name 隨意填,region 目前只有美國可以選。
    heroku new app
  • 安裝 Heroku CLI
  • 在自己要上傳的專案安裝 gunicorn
pip install gunicorn
  • 建立 Procfile, 內容如下
web gunicorn main:app
# main 是我們程式的檔案名稱 (main.py)
# app 是 flask 的實體名稱 app = Flask(__name__)
# 如果你的名字和我不一樣,記得自己改喔

Procfile 是跟 heroku 指定部署完後,要執行什麼檔案,如果你有其它的規畫,可以改這個檔

  • 建立 runtime.txt 檔
python-3.7.11

這個檔案是指定我們要用哪個版本的 python 來執行,如果沒有指定的話,沒有指定的話,就是最新版,因為 shioaji 目前只有支援到 3.7,所以這裡就指定 3.7.11

  • 再來就是要把我們的專案用 git 方法推到 heroku 去,官網有詳細指令,不過我這還是列在下面
# 登入
heroku login

# 到自己的專案目錄下
cd my-project/

# 初始化 git
git init

# 建立 heroku 遠端分支
heroku git:remote -a [剛剛輸入的 app name]

# stage 所有檔案
git add .
# commit 
git commit -am "[commit 備註]"
# 推送到 heroku
git push heroku master

在推送到 heroku 之後就會自動建置,然後執行我們在 procfile 指定的指令。結束後,可以看到以下畫面

heroku deploy

可以在那找到自己 app 的網址,把這個網址複制下來,貼到 Line Messaging API 裡的 Webhook URL,就可以在 line 裡使用了。


上一篇
LineBot - 身份驗證
下一篇
交易策略 - Backtrader
系列文
永豐金融APIs - 從零開始到放棄!?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言