[PHP] Heroku with Google Cloud SQL 建立連線

  • 648
  • 0
  • php
  • 2020-09-15

最近在搞demo 專案,為了走https選擇了有限度免費的Heroku

然而demo專案要做大,就需要資料庫的支持

這邊選擇使用Google Cloud SQL 建置了一個My SQL資料庫

要讓掛在Heoku上的Web app可以連線到資料庫

要用的工具如下:

Heroku CLI、Google Cloud Platform的Cloud SQL、服務憑證(service account .json)

在以Heroku已佈署好一個Laravel Web app的前提下進行(未佈署好可參考連結)

1.在GCP建立好Cloud SQL 資料庫(Instances執行個體)

並利用自已的對外IP 加入信任後連線確定資料庫建立無誤

以上這部分在google 文件都有圖文說明

2.建立GCP 服務帳戶

從GCP的平台上選擇「API與服務」點取「憑證」/「建立憑證」選擇服務帳戶

權限的部分一定要選Cloud SQL編輯者/Cloud SQL 用戶端

接著下載憑證(.json)即可

3.在專案中加入檔案:proxy.sh、start.sh、第二步下載json憑證

proxy.sh >> 目的:從google下載cloud_sql_proxy執行檔

start.sh>> 目的:啟動cloud_sql_proxy把憑證與google 進行認證連接

這部分可以參考連結進行處理

4.修改heroku的profile檔

這個檔案是提供給heroku在執行這支web app時的Dyno formation 來源

可以在heroku的web app主頁可見

為了在執行這支web app時,請heroku一並啟動cloud sql proxy進行身份驗證,達到app連接資料庫的目的

5.最後就是調整composer.json檔案中的script

這裡主要就是要下載cloud_sql_proxy執行檔,

在參考連結裡是針對composer install 的時候進行下載cloud_sql_proxy執行檔

6.最後一步,確認紅框的檔案都沒有少後,就可以開始進行測試連線

測試的方式可直接在bash中執行start.sh就知道有沒有問題了

以上,做一個記錄,因為這個花了二天時間!!累累累