---
# System prepended metadata

title: 11/23-GCP實作
tags: [dsc]

---

---
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)
