# 本地端應用透過Google Cloud達到持續交付
---
# [Self Introduction](https://www.sql-fan9704.eu.org/)

---
## 持續交付 Continous Delivery
> Continous Delivery = CI(Continous Integration) 持續整合+CD(Continous Deployment) 持續部屬
他們是在將撰寫完的程式流程自動化,前者負責整合的部分,後者負責部屬的部分。
---
## 本次主角 Cloud Build (CI工具)

**特色**
- 有免費額度 支援多種語言
- 可以整合很多其他GCP服務(今天與Cloud Run整合)
- 使用yaml檔案設置
---
### 實作環節
----
> 節省時間 這裡有個專案大家嘗試一下
**記得Install [Google Cloud SDK](https://cloud.google.com/sdk)**
```bash=
git clone git@gitlab.com:fan9704/flaskgcpcloudbuildtocloudrun.git
#進入專案且設置Google Cloud Project
cd flaskgcpcloudbuildtocloudrun
# 初始化本專案成 Gcloud 專案
gcloud init
```
----
### 安裝套件 requirements.txt

----
### 簡單的API main.py

----
### 簡單的測試 main_test.py

----
### 都寫好了 包裝成Docker Image

----
### OK Cloud Build CI/CD流水線建置起來

----

----
### 好了就 build吧
```bash=
#丟上去
gcloud builds submit --config cloudbuild.yaml .
```
----

----
### GCP 頁面查看pipeline

----
### Cloud Run Service 啟動成功

----
### 實際應用程式

---
## Thanks Everyone
> I am [FKT](https://www.linkedin.com/in/gang-ting-fan-95885920a/)
> We are NYUST GDSC
> [Discord Link](https://discord.gg/hKsXDm29TR)

----
## Error Artifact Registry沒建置起來
```shell=
#1. 專案帳單帳戶設置
#2. 沒有放docker image的artifact registry
gcloud artifacts repositories create docker-repo --repository-format=docker --location=us-central1 --description="docker repository"
#改一下cloud build yaml的artifact registry repo變成docker-repo
#3. Cloud RUN API 沒開啟
#4. Artifact Registry API沒開啟
#5. Compute Engine API 沒開啟
#6. IAM Cloud Build帳號權限 Cloud Run Admin
```
{"metaMigratedAt":"2023-06-17T15:44:14.027Z","metaMigratedFrom":"YAML","title":"本地端應用透過Google Cloud達到持續交付","breaks":true,"contributors":"[{\"id\":\"4c8f8799-9dcd-430b-b7bc-8a5156d39d0b\",\"add\":2643,\"del\":578}]"}