當微信小程式遇上TensorFlow:Server端實現補充

雲水木石發表於2019-03-01
當微信小程式遇上TensorFlow:Server端實現補充

在前面一篇文章《當微信小程式遇上TensorFlow:Server端實現》中,我們探討了微信小程式server端的實現。今天在除錯微信小程式時才發現一個問題,那就是:微信小程式要求HTTP請求走更加安全的HTTPS協議

修改Simple TensorFlow Serving

為此我研究了Simple TensorFlow Serving: github.com/tobegit3hub… 的原始碼,發現其WEB框架採用了flask。flask要增加https支援相當容易,因此我增加了三個引數:

parser.add_argument(
    "--enable_ssl", default=False, help="If enable RESTfull API over https")
parser.add_argument(
    "--secret_pem", default="secret.pem", help="pem file")
parser.add_argument(
    "--secret_key", default="secret.key", help="key file")
複製程式碼

第一個引數指定是否啟用HTTPS協議,後面兩個引數為證照檔名。這個修改我已經向原作者提了一個PR,等待合併。在合併之前,你可以訪問 github.com/mogoweb/sim… 獲取最新程式碼。

證照申請

上阿里雲可以申請一個免費的證照,雖然有效期只有一年,但對於我來說足夠用。需要注意的是,阿里雲上申請證照很隱蔽,我也是嘗試了好幾個組合,那個免費證照的選項才出現。因為我的主機就是託管在阿里雲上,域名也是使用阿里雲的DNS服務,所以申請完後,很快就稽核通過,然後就可以下載證照。證照下載時我選擇證照for Nginx,下載下來就是兩個檔案:一個pem檔案,一個key檔案。

當微信小程式遇上TensorFlow:Server端實現補充

測試客戶端

測試客戶端倒不需要怎麼修改,只需要將URL的 http:// 修改為 https:// 即可。為此,我也增加了一個引數enable_ssl:

  if enable_ssl :
    endpoint = "https://ilego.club:8500"
  else:
    endpoint = "http://ilego.club:8500"
複製程式碼

完整程式碼請參考: github.com/mogoweb/aie…

小結

真正在做專案時,總會碰到意想不到的問題,這遠不是照著書本敲幾個demo可以獲得的經驗。在開始做這個微信小程式時,覺得很簡單,但做著做著,發現一路碰到的問題還不少。這也是我經常建議新手自己動手做點小專案的原因,即使這個小專案並沒有什麼產品價值,即使是在現有的程式碼上修改,但這個過程中積累的經驗對於個人來說,還是很寶貴的。

image

相關文章