Google Cloud Platform 簡稱 GCP,其實就是Google雲端服務平台,包含了AI 與機器學習(Speech-to-Text、Vision、Translation)、儲存(Cloud Storage、Persistent Disk)、資料分析(BigQuery、Cloud Datalab) 等許多產品服務
Videos
目前 (2019年) Google 提供價值$300 美元的抵免額 用於 GCP上,所有 Cloud Platform 產品服務都可以使用串接,但必須是在12個月內完成。
本文將以 Google Cloud Translation 為例子,介紹要如何部署在 Heroku上。
事前準備
- Google 帳號 以及 信用卡帳號
- 架設在 Heroku 的網站
開始
首先要以 Google帳號 申請 GCP

跑完申請流程後,在 Google Cloud Console裡建立一個新專案

接著在 API程式庫裡 搜尋 “Cloud Translation API”

啟用 “Cloud Translation API”

再到專案內的左邊選單欄,點選 憑證

建立 “服務帳戶金鑰”

選擇 JSON

請好好保存 Google 給你的金鑰,小心不要留出去給有心人士利用
到這裡,大家可能會苦惱要如何將JSON金鑰部署在Heroku上,但又不會暴露在GitHub上呢?
一般來說,我們都是把金鑰以環境變數的方式,輸入在 Heroku 的Settings

但由於 Google 設定環境變數 GOOGLE_APPLICATION_CREDENTIALS 來為應用程式程式碼提供驗證憑證。 將 [PATH] 改成包含您的服務帳戶金鑰的 JSON 檔案路徑,並將 [FILE_NAME] 改成檔案名稱。

因此我們並不能將金鑰內的許多資訊一個一個的輸入在 “Config Vars”,也不能直接push金鑰上去給Heroku
這裡提供一個解決方案
步驟ㄧ
先將 環境變數 設定如下圖

GOOGLE_APPLICATION_CREDENTIALS 為 KEY, google-credentials.json 是 VALUE GOOGLE_CREDENTIALS 為 KEY, 金鑰(JSON檔裡的內容)複製貼上在 VALUE
步驟二
在終端機裡輸入以下指令 (某位大大提供的 buildpack)
heroku buildpacks:add https://github.com/kevin0117/heroku-google-application-credentials-buildpack
步驟三
需要 Push 到 Heroku 上 (隨便更新,可以commit就可以了)
步驟四
利用 Heroku 上的 buildpack 自動產出 google-credentials.json,並幫我們把金鑰的內容塞進去。
依序完成四個步驟就可以連接上Google所提供的服務了!
參考資料
Comments