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