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

symbol1

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

symbol1

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

symbol1

啟用 “Cloud Translation API”

symbol1

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

symbol1

建立 “服務帳戶金鑰”

symbol1

選擇 JSON

symbol1

請好好保存 Google 給你的金鑰,小心不要留出去給有心人士利用

到這裡,大家可能會苦惱要如何將JSON金鑰部署在Heroku上,但又不會暴露在GitHub上呢?

一般來說,我們都是把金鑰以環境變數的方式,輸入在 Heroku 的Settings

symbol1

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

symbol1

因此我們並不能將金鑰內的許多資訊一個一個的輸入在 “Config Vars”,也不能直接push金鑰上去給Heroku

這裡提供一個解決方案

步驟ㄧ

先將 環境變數 設定如下圖

symbol1

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所提供的服務了!

參考資料