# GCP(Google Cloud Platform) - GAE(Google App Engine) ## 基本介紹 - [Google Cloud免費計畫](https://cloud.google.com/free/docs/gcp-free-tier?hl=zh-TW#free-tier-usage-limits) - [GCP全球據點代號](https://cloud.google.com/about/locations?hl=zh-tw#asia-pacific) - [Python 3快速入門導覽課程](https://cloud.google.com/appengine/docs/standard/python3/quickstart?hl=zh-TW) - [Specifying Dependencies](https://cloud.google.com/appengine/docs/standard/python3/specifying-dependencies) ## 開始使用 1. [建立Google帳號](https://accounts.google.com/SignUp?hl=zh-TW) 或 [登入Google帳號](https://accounts.google.com/Login?hl=zh-TW) 2. 進入 [GCP控制台首頁](https://console.cloud.google.com/projectselector2/home/dashboard?hl=zh-TW&_ga=2.186197993.1307742647.1609489748-2088114763.1609489748) ## 建立App Engine專案 ### 一、建立帳單帳戶 下面會以「個人」的名義來建立專案。 #### Google聲明: --- #### 使用所有 Cloud Platform 產品 取得建構及執行應用程式、網站和服務所需的一切資源,包括 Firebase 和 Google Maps API。 #### 免費獲得價值 $300 美元的抵免額 讓您試用 Google Cloud,並獲得價值 $300 美元的抵免額,供您在未來 90 天內使用。 #### 免費試用期結束後不會自動向您收費 我們之所以要求您提供信用卡資訊,是為了確保您不是自動化程式。除非您手動升級至付費帳戶,否則我們不會向您收費。 --- #### 國家/地區 台灣 #### 帳戶類型 個人 #### 稅務資訊 如果只是個人使用且並沒有跟財政部申請過稅籍,那就是選「未登記稅籍」就可以了。 > [Google:輸入或變更加值稅編號 (統一編號) 和稅籍](https://support.google.com/a/answer/7437651?hl=zh-Hant) #### 名稱和地址 「郵遞區號」、「地址」、和「姓名」是必填欄位。 > 備註: > > 郵遞區號和地址會檢查是否匹配。 #### 付款方式 信用卡卡號是必填資訊 > 備註: > > 信用卡擁有者可以和使用者不同姓名。 ## 二、進入Cloud Shell 從GCP控制台工作列右上方的![cloudshell](https://i.imgur.com/aDlXaRQ.png)點擊進入。 > 補充: > > 或是安裝本地端的[Google Cloud SDK](#安裝Google Cloud SDK) ## 三、編寫app.yaml檔案 要部署到App Engine都必須提供app.yaml格式檔案,App Engine會利用 YAML檔案內所指定部署作業的設定。 檔案包含應用程式的相關資訊,例如執行階段環境、環境變數等等。 > 補充:[Google官方app.yaml說明](https://cloud.google.com/appengine/docs/standard/python3/config/appref?hl=zh-TW) #### Python範例 ``` # Python版本 runtime: python38 # 設定執行個體,如果沒有這行,則預設F1 instance_class: F1 # 快取時間,0 = 不快取 default_expiration: 0 # 環境變數 env_variables: BUCKET_NAME: "example-gcs-bucket" handlers: # 將根目錄轉導到index.html - url: /test static_files: index.html upload: index.html # 將其他位址都轉導到Python程式 - url: /.* secure: always script: auto ``` #### Go範例 ``` runtime: go114 # 指定主程式所在目錄 main: ./src/cmd/collector ``` ### 四、requirements.txt Python需要提供這個檔案來指定需要額外安裝的模組,例如: ``` uwsgi==2.0.19.1 flask==1.1.2 requests pytz ``` ### 五、部署建立應用程式 ### 準備 1. Python主程式必須名為:**main.py** 2. Python的外部模組必須設定在:**requirements.txt** 3. 部署用的設定檔:**app.yaml** #### 建立應用程式 如要部署應用程式,您必須先在某個區域中建立應用程式: ``` $ gcloud app create ``` #### 部署 您可以使用 Cloud Shell 部署應用程式。如要部署應用程式,請輸入下列指令: ``` $ gcloud app deploy ``` #### 取得網已經上線的網頁服務清單 ``` $ gcloud app browse ``` > 補充: > > 預設網址為 appspot.com 上的子網域,網址開頭為專案ID名稱。 #### 切換專案 ``` $ gcloud config set project [PROJECT_ID] ``` #### 看log ``` $ gcloud app logs tail -s default ``` > 提示: > > 即為可以觀看透過`print()`方法輸出的文字。 #### describe取得app資訊 ``` $ gcloud app describe ``` ## 其它 ### 安裝Google Cloud SDK #### Step 1: 下載:[Google Cloud SDK](https://cloud.google.com/sdk/docs/quickstart?hl=zh-TW) #### Step 2: **MacOS:**解壓縮後將整個`google-cloud-sdk`搬移到任意想存放的地方,並執行目錄下的`install.sh`腳本來設定環境變數(選用)。 **Windows:**執行exe安裝檔後完成安裝。 > 注意: > > Windows安裝程式的最後請確認下面兩個選項丟被打勾: > > - Start Google Cloud SDK Shell > - Run 'gcloud init' #### Step 3: **MacOS:**執行`./google-cloud-sdk/bin/gcloud init`進行初始化Cloud SDK。 **Windows:**在上一步驟的最後,如果有勾選`Run 'gcloud init`,'安裝程式會開啟終端機畫面並進行初始化。 > 補充: > > 更詳細資訊可參考[Cloud SDK說明文件](https://cloud.google.com/sdk/docs/quickstart?hl=zh-TW) ### 刪除應用程式 如果專案不使用了,可以刪除專案來釋放相關資源,以免不小心被Google收費。 [前往管理資源](https://console.cloud.google.com/iam-admin/projects?hl=zh-TW)