--- tags: dsc Author: uccu --- # 11/23-GCP實作 ## Overview 建立GCP專案,利用 Cloud SQL 建立雲端資料庫,並利用 App Engine 架設 Nodejs Web Server ## Setup 1. 進入 [GCP](https://console.cloud.google.com) 網站 2. 登入google帳號 3. 點擊免費試用建立帳號 ![](https://i.imgur.com/grAmVix.png) ## 建立GCP專案 1. 點選上方選取專案 -> 新增專案 ![](https://i.imgur.com/omKHvVS.png) 2. 輸入專案名稱後點擊建立 ![](https://i.imgur.com/Bez0GeT.png) ## 建立MySQL server 1. 點擊 console 左上角 -> 下拉找到資料庫欄位 -> 點選SQL ![](https://i.imgur.com/MPLy2Gv.png) 2. 點選建立執行個體 ![](https://i.imgur.com/H6cozrO.png) 3. 選擇 MYSQL ![](https://i.imgur.com/mY3RGqM.png) 4. 輸入執行個體資訊 - 執行個體ID: sqlserver - 根密碼: <自己設定密碼> - 區域: asia-east1(台灣) - 分區: asia-east1-a - 資料庫版本: MYSQL 5.7 ![](https://i.imgur.com/XJMREGB.png) 5. 點擊顯示設定選項 ![](https://i.imgur.com/T15jbcp.png) 6. 下拉找到機器類型和儲存空間點擊並更改設定 - 機器類型點選變更 -> 選取 db-f1-micro - 儲存空間容量更改為10GB ![](https://i.imgur.com/HnGjYtf.png) 7. 點選建立 ![](https://i.imgur.com/Gv8nl9Q.png) 8. 等待直到 MySQL server 建立完成 (需要幾分鐘的時間) ![](https://i.imgur.com/cIB5ls4.png) ## 建立SQL資料庫並開啟API 1. 在左側主要執行個體 -> 點選資料庫 ![](https://i.imgur.com/dJivbOL.png) 2. 點選建立資料庫 ![](https://i.imgur.com/DU4MXtc.png) 3. 設定資料庫名稱為 webdb -> 點擊建立 ![](https://i.imgur.com/Z3UcgI1.png) 4. 確認webdb資料庫建立成功 ![](https://i.imgur.com/01BRd7L.png) 5. 點擊上方搜尋欄位 -> 輸入 Cloud SQL Admin API -> 找到 Cloud SQL Admin API 並按下確認 ![](https://i.imgur.com/D433mgZ.png) 6. 點擊啟用 ![](https://i.imgur.com/RyhiK3s.png) ## 利用Cloud Shell建立Table 1. 進入 [Cloud Shell Editor](https://shell.cloud.google.com/) 網站 2. 確認右上角編輯器與終端機皆已開啟 ![](https://i.imgur.com/3sosQ5w.png) 3. 點擊終端機開始輸入指令 4. 列出所有創建的 project -> 找到剛建立的 PROJECT_ID ```shell= gcloud projects list ``` ![](https://i.imgur.com/LX6wZS1.png) 5. 設定使用此 project ```shell= gcloud config set project <YOUR_PROJECT_ID> ``` ![](https://i.imgur.com/HS6VNhE.png) 6. 連線到剛建立的 SQL Server ```shell= gcloud sql connect sqlserver --user=root --quiet ``` ![](https://i.imgur.com/fW5NnKC.png) 7. 輸入密碼並按下確認 ![](https://i.imgur.com/uoAj6jx.png) 8. 列出所有資料庫 ```sql= show databases; ``` ![](https://i.imgur.com/RhmLpNW.png) 9. 切換使用資料庫為 webdb ```sql= use webdb; ``` ![](https://i.imgur.com/4PAWemc.png) 10. 建立 table ```sql= CREATE TABLE `webdb`.`courses` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT , `name` TEXT NOT NULL , `content` TEXT NOT NULL , `img` TEXT NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB; ``` ![](https://i.imgur.com/YOz3pMD.png) 11. 列出資料表欄位名稱 ```sql= describe courses; ``` ![](https://i.imgur.com/qZ9PC5m.png) 12. 離開 SQL Server ```shell= quit ``` ![](https://i.imgur.com/RejkmJt.png) ## 建立App Engine並開啟API 1. 回到 GCP Console 頁面 2. 點擊 console 左上角 -> App Engine -> 資訊主頁 ![](https://i.imgur.com/2CTtCMw.png) 3. 點擊建立應用程式 ![](https://i.imgur.com/wu1Wcxu.png) 4. Region 選擇 asia-east2 -> 點選建立應用程式 ![](https://i.imgur.com/tXIGXOr.png) 4. Language 選擇 Node.js -> 點選繼續 ![](https://i.imgur.com/TzNP24i.png) 5. 點擊上方搜尋欄位 -> 輸入 App Engine Admin API -> 找到 App Engine Admin API 並按下確認 ![](https://i.imgur.com/C1AF2bt.png) 6. 點擊啟用 ![](https://i.imgur.com/tvhcsdi.png) ## 部屬App Engine應用 1. 點擊 console 左上角 -> 下拉找到資料庫欄位 -> 點選SQL ![](https://i.imgur.com/MPLy2Gv.png) 2. 記下執行個體連線名稱 ![](https://i.imgur.com/GfqH3kC.png) 3. 回到 Cloud Shell Editor 介面 4. 點擊終端機輸入指令下載專案 ```shell= git clone https://github.com/uccuz/DSCNCU-NodeJSWeb.git ``` ![](https://i.imgur.com/zxaGyWL.png) 5. 點擊上方編輯器 DSCNCU-NodeJSWeb 資料夾 -> 開啟 app.yaml 檔案 ![](https://i.imgur.com/dAKfLAq.png) 6. 更改 app.yaml 檔案,內容如下 - env_variables: - INSTANCE_CONNECTION_NAME: <你的執行個體連線名稱> - DB_USER: root - DB_DATABASE: webdb - DB_PASS: <你設定的密碼> - beta_settings: - cloud_sql_instances: <你的執行個體連線名稱> - 修改完成後記得按下Ctrl + S 儲存 ![](https://i.imgur.com/ne8rNaz.png) 7. 點擊終端機輸入指令 8. 回到家目錄 ```shell= cd ``` 9. 變更目錄到專案位置 ```shell= cd DSCNCU-NodeJSWeb ``` 10. 部署App Engine應用 ```shell= gcloud app deploy ``` 11. 輸入y並按下 enter ,即可開始部屬 (需要幾分鐘的時間) ![](https://i.imgur.com/PTCd5fJ.png) 12. 部屬成功後,將網址複製到瀏覽器中並送出 ![](https://i.imgur.com/A6hpHGY.png) 13. 檢查網站是否正常運作,可以嘗試新增或刪除資料 ![](https://i.imgur.com/Qwg0zz5.png) ## 刪除專案 1. 回到 GCP Console 頁面 2. 選擇要刪除的專案 3. 點擊右上角 -> 專案設定 ![](https://i.imgur.com/2bRDBES.png) 4. 點選關閉 5. 輸入專案ID後點選關閉 ![](https://i.imgur.com/0mcz278.png)