---
# System prepended metadata

title: 1130對話機器人(3/5)
tags: [' 筆記', GCP]

---

---
title: 1130對話機器人(3/5)
tags: GCP, 筆記
---

:::danger
GCP使用快市場半步，市場追我們
	AI與雲端
	雲原生概念

	帳號建置
	帳單預警(暫略)
	核心服務介紹
		CloudStorage - 無限資料儲存
		IAM
		Cloud SDK integrate CloudStorage - 用程式碼操作儲存空間
		Chatbot integrate GCP cloudstorage - 用機器人結合儲存空間，照片無限上傳
		

:::


# 雲服務體驗流程
>gcp的三大核心服務
>* Cloud storgae:碰到巨量資料時，需要無限空間(一般硬碟最多2T)
>* Google compute engine 租機器
>* IAM 權限應用

```
GCP:
   Project:無機構
	帳單預警設定
		1.Cloud Storage儲存:檔案都是object 裝載東西叫bucket
		  建立值區(建立bucket)
			1.命名：不可重複 小寫
			2.選擇資料儲存
				位置類型：單或多
				選擇位置:離自己近的
			3.儲存空間級別
			4.存取權：精細 統一（90天內可更改，90天後就固定了）
		2.GCE租機器: serivce_account
		3.IAM權限: service_account +key 最高權限者才能加東西進來
			Cloud Shell:

```




:::info
### 1. 建立GCP帳號（有google帳號就可以使用了）
### 2. 創建專案 Project 
### 3. 設定專案帳單預警（點到專案裡面設定）
### 4. 服務拉近專案內：
* 要儲存-> 加 cloud storage
* 要資料運算->加cloud compute engine

:::

## 1.google 搜尋gcp->申辦gcp帳號

## 1.1

![](https://i.imgur.com/o6b7HWF.jpg)

----
## 1.2
![](https://i.imgur.com/pmw5fWY.jpg)

---
## 1.3
![](https://i.imgur.com/lBXXSi8.jpg)

## 2.建立專案
### 2.1 點選my first project
### 2.2 選『無機構』
### 2.3 新增專案
![](https://i.imgur.com/hTnzfiG.jpg)

![](https://i.imgur.com/MUewApj.jpg)


## 3. 建立完專案，為此專案設定帳單預警
#### 3.1 確認位於剛剛新增的專案內（左上方tibame-7895）
#### 3.2點選左邊『帳單』
![](https://i.imgur.com/Xv7avAr.png)

#### 3.2 預算與快訊
![](https://i.imgur.com/LmlFbuz.png)
### 3.3 設定預算
![](https://i.imgur.com/Kl60cxp.png)
### 3.4 輸入名稱
![](https://i.imgur.com/tyKWQK8.png)

### 3.5
![](https://i.imgur.com/jOBwowg.png)
![](https://i.imgur.com/lw2qUJX.png)
![](https://i.imgur.com/vNnkzLO.png)
### 4 使用Cloud Storage
### 4.1 搜尋cloud storage
![](https://i.imgur.com/sAFVf77.png)
### 4.2 當有權限的成員操作時，等於把這個服務加入此project中
![](https://i.imgur.com/Mkd2Uka.png)
### 4.3建立值區
:::success
Cloud Storage中
檔案(文字 圖片 影片 等等）都叫object
這些檔案必須要裝載桶子內->bucket
而建立值區就是創一個桶子，有了桶子，後面才能存放檔案進來
核心名詞:
所有檔案都是object，裝載object的是bucket
:::
![](https://i.imgur.com/3UVm0Xf.png)

### 4.3.1 值區命名：名字不重複，要小寫
![](https://i.imgur.com/0k92PLA.png)


### 4.3.2 選擇資料存放地區
* 位置類型：單或多
* 位置：離自己近的
> GCP在全球地區都有機房，選在要存在多個地區還是單一地區
> regioon地區 /機房zone ex:台灣有不同機房 
> 選擇的地區位置會-> 影響連線品質跟收費
:::info
* 位置類型：
region:一個地區
dual-region：兩個地區
multi-region:多個地區
* 區域的位置:選離自己近的
:::
![](https://i.imgur.com/Z3XUUAL.png)
### 4.3.3儲存空間級別
讀取頻率選擇->費用不同 有興趣可google 這邊先選擇standard
![](https://i.imgur.com/fD16G6T.png)


### 4.3.4存取權：精細 統一


![](https://i.imgur.com/uMJ2150.png)
### 4.3.5 加密
雲端不安全這個觀念是正確的->當兵 女友 朋友
把資料放別人機房確實有風險 所以要加密
* google代替的金鑰（google有鎖頭鑰匙）
* customer-managed key(google有鎖頭 我有鑰匙)
![](https://i.imgur.com/DHgRXND.png)

### 5. 值區建立完成（bucket）可以上傳檔案進來了

![](https://i.imgur.com/PjkDnUu.png)
### 6.下載已上傳的檔案：選擇檔案按下載

![](https://i.imgur.com/saffp5y.png)

### 7.調整檔案外部存取權限
精細：這邊的網址 其他人是連不上的

下載物件
* 	內部人員
* 	外部人員 - acl - 精細或統一
![](https://i.imgur.com/p4rPMhD.png)

### 7.1 編輯權限：

![](https://i.imgur.com/Y9r3ot1.png)

### 7.2 新增項目->public->allUsers->reader

![](https://i.imgur.com/jUuqysF.jpg)



### 7.3設定完後，這個檔案會有一個公開網址，其他人就可以下載了

---![](https://i.imgur.com/qW3ke3w.png)
-
### 7.4調整單一檔案為非公開
編輯權限->刪除public欄位

![](https://i.imgur.com/W2uqQJh.jpg)


![](https://i.imgur.com/5qKdIgf.png)

![](https://i.imgur.com/WZOxtYw.png)
![](https://i.imgur.com/XlYcDMN.png)

![](https://i.imgur.com/Fro9exw.png)

### 8.開cloud shell用程式來操作GCP

![](https://i.imgur.com/42I5ozl.png)
sheng-for tibame是老師剛剛創的bucket
> #### 1. 查看你的cloud storage：gsutil專門給cloud storage用的命令列指令
```
gsutil ls
```
:::warning
Linux 的 ls 指令:
直接執行 ls 帶任何參數的話，會列出目前目錄中的檔案與目錄列表。
:::
![](https://i.imgur.com/RbnqqBr.png)
#### 這邊會看到你的cloud storage


>#### 2.查看storage內的檔案
```
gsutil ls ＋桶子路徑（可複製剛剛出現路徑）
```
#### 這邊會看到你的cloud storage內的檔案名稱

![](https://i.imgur.com/wSDNclD.png)


>#### 3. 將檔案複製

```
gsutil cp +檔案路徑(空白+.)
```

![](https://i.imgur.com/lRXhJ70.png)






### 開啟編輯器來寫程式
![](https://i.imgur.com/Koi79rR.png)

### 創main.py檔案
![](https://i.imgur.com/k4UJgKS.png)


![](https://i.imgur.com/hgStPUI.png)

### 在 new terminal 安裝flask
#### 開啟new terminal 
![](https://i.imgur.com/G0JftKn.jpg)

#### new terminal 輸入指令：
```
pip3 install flask
```
![](https://i.imgur.com/AqwdORz.png)


### 輸入程式碼

```
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

app.run()
```
來源：* [Quickstart — Flask Documentation (1.1.x)](https://flask.palletsprojects.com/en/1.1.x/quickstart/)
![](https://i.imgur.com/yloa0ZP.png)

## 產生的網址：按control可以進入生成網頁

![](https://i.imgur.com/Nd1Czbg.png)

![](https://i.imgur.com/9m8CGbb.png)


-----**

### 使用python操作:列出cloud storage中的bucket名稱
* [google-cloud-storage · PyPI](https://pypi.org/project/google-cloud-storage/)

```
pip3 install google-cloud-storage
```

![](https://i.imgur.com/4VPwMoe.png)

### 列出cloud storage中的bucket名稱 輸入程式碼
* [Listing buckets  |  Cloud Storage  |  Google Cloud](https://cloud.google.com/storage/docs/listing-buckets#code-samples)


```
from google.cloud import storage

storage_client = storage.Client()
buckets = storage_client.list_buckets()

for bucket in buckets:
    print(bucket.name)
```
![](https://i.imgur.com/OIuULFc.jpg)

```
gloud config set project+ project's id (因為不知道所以所以回專案確認id)
```

### 查看專案id
![](https://i.imgur.com/sJiMVbA.jpg)


1. 輸入gloud config ser project+ project's id
2. 進到專案內後再執行main.py->成功列出bucket名字
![](https://i.imgur.com/62OCB1t.png)

---


## END





