前言
請先建立好 Google Cloud Platform
服務,再開始以下內容。
資料夾結構配置
全部放在根目錄底下就對了。
1 | -public |
設定檔建置
由於 Vue Cli
在最後的 build
會產生 index.html
以及其他靜態資源,而部署到雲端主機時,必須讓雲端主機去執行這份打包檔案。所以,我們就必須在寫一份 app.js
腳本來跑這份靜態資源。
請參考以下範例:
1 | const fs = require('fs'); |
Google Cloud 設定檔建置
首先會建立一份 app.yaml
檔案,這是在部署時 GAE
所需要參考的設定,可以分為標準及彈性,標準設定會由 GAE
決定資源配置;若是彈性設定,則可以完全客製化資源(ex:vcpu
、記憶體
、硬碟大小
等等)。
標準設定可以直接參考官方文件,以下連結
app.yaml標準設定
那麼就是彈性設定的寫法哩,請參考以下範例:
1 | runtime: nodejs |
- resources: 可以調整主機資源,可以部署不同資源的版本,當流量過大時即可在
GAE
後台直接切換版本,馬上做出應對。 - runtime: 此處寫法與標準設定不同,請注意。
- env: 彈性設定必須寫 flex。
- env_variables: 若有相關變數必須在此設定。
package.json 設定
將專案的 package.json 調整成以下範例,
必須要寫 npm run start
的指令,因為這是 GAE 部署時會執行的,而指定的腳本就是剛剛寫的 app.js
。
1 | { |
部署 GAE
這邊首先要安裝 Google Cloud SDK
,這其實就類似 CMD
,讓我們可以輸入部署指令用的。
完成後執行程式,並開始以下部署步驟:
- 移到專案資料夾
1 | cd 專案資料夾路徑 |
- 初始化
GAE
1 | gcloud init |
此時會詢問一些問題,像是要用哪個帳號、連接的伺服器地區(台灣、香港),最後是要部署到哪一份專案的 app engine
。
3. 執行部署指令
1 | gcloud app deploy app.yaml |
輸入後有可能會出現 python
的錯誤代碼,不過沒關係,繼續讓他跑程式,若是沒有出現 ERROR
等字樣,並且完成所有程序,就代表已經部署至 GAE
囉。
結尾&驗證
回到 GCP
後台選好專案,來到 GAE
的管理頁面,部署完成後會給一組網址,像是www-專案名稱.appspot.com
,之後就可以將 DNS
全部轉到此處。
這樣用戶就可以正常執行 SPA
網站囉。