本教學課程適用於初次在雲端環境中建構應用程式的新手,例如想要學習重要應用程式開發概念,並在開始使用 Google Cloud的過程中加以應用的工程師和網頁程式開發人員。
目標
- 學習基本的 Google Cloud 工具,例如 Google Cloud 控制台和
gcloud。 - 將應用程式部署至 Cloud Run。
- 使用 Firestore 存放資料。
- 將上傳的檔案儲存在 Cloud Storage 中。
- 使用 Google Cloud Observability 監控應用程式。
費用
在本文件中,您會使用下列 Google Cloud的計費元件:
本文提供的說明可協助您將資源用量控制在 Google Cloud的「一律免費」方案額度內。
如要根據預測用量估算費用,請使用 Pricing Calculator。
完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」。
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- 如要以原生模式建立 Firestore 資料庫,請完成下列步驟:
-
前往 Google Cloud 控制台的「Firestore create database」(建立 Firestore 資料庫)頁面。
- 按一下「選取 Cloud Firestore 模式」畫面中的 [選取原生模式]。
- 選取 Firestore 資料庫的位置。您所設定的位置會是 Google Cloud 專案的預設 Google Cloud 資源位置 。這個位置會用於專案中需要位置設定的服務,具體來說,就是預設的 Cloud Storage 值區和 Cloud Run 應用程式。
- 按一下 [建立資料庫]。
-
前往 Google Cloud 控制台的「Firestore create database」(建立 Firestore 資料庫)頁面。
-
啟用 Cloud Run Admin、Cloud Storage、Cloud Logging 和 Error Reporting API。
啟用 API 時所需的角色
如要啟用 API,您需要服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。 -
複製範例存放區,並在 Cloud Shell 中開啟範例應用程式:
前往 Cloud ShellCloud Shell 可讓您直接在瀏覽器中使用指令列工具存取 Google Cloud 資源。
- 如要將程式碼範例和變更下載到應用程式目錄中,請按一下 [繼續]。
-
在 Cloud Shell 中,將
gcloud工具設定為使用您新建的 Google Cloud 專案:# Configure gcloud for your project gcloud config set project PROJECT_ID
將 PROJECT_ID 替換為您使用 Google Cloud 控制台建立的 Google Cloud 專案 ID。
Google Cloud CLI 是您透過指令列與 Google Cloud 資源互動的主要方式。在本教學課程中,您將使用
gcloud工具部署及監控應用程式。
執行應用程式
- 在 Cloud Shell 中,使用
pip安裝應用程式依附元件:pip3 install -r requirements.txt --user
-
執行 Gunicorn HTTP 伺服器:
~/.local/bin/gunicorn -b :8080 main:app
- 在 Cloud Shell 中,按一下 [網頁預覽],然後選取 [透過以下通訊埠預覽:8080]。這會開啟新視窗,顯示執行中的應用程式。
將應用程式部署至 Cloud Run
Google Cloud 提供數個執行程式碼的選項。以這個例子來說,您會利用 Cloud Run,將可擴充的應用程式部署至 Google Cloud。Cloud Run 不需要您管理伺服器,且會自動調度資源以應付突然爆增的流量。
- 使用 Cloud Build 建構 Docker 容器並發布至 Container Registry:
gcloud builds submit --tag gcr.io/
PROJECT_ID/bookshelf .將
PROJECT_ID替換為您先前建立的 Google Cloud專案 ID。 - 使用 Cloud Run 執行容器:
gcloud run deploy bookshelf --image gcr.io/
PROJECT_ID/bookshelf \ --platform managed --region us-central1 --allow-unauthenticated現在,您只要前往
gcloud run輸出內容中顯示的網址,就能看到自己的應用程式:Service [bookshelf] revision [bookshelf-00001] has been deployed and is serving 100 percent of traffic. Service URL: https://bookshelf-swsmmh5s5a-uc.a.run.app
-
將網址複製到網路瀏覽器中,即可查看應用程式。

如要進一步瞭解如何部署至 Cloud Run,請參閱 Cloud Run 說明文件。
使用 Firestore 保留資料
您無法將資訊儲存在 Cloud Run 執行個體上,因為這些資訊在執行個體重新啟動後將會遺失,而且也不會存在於新建立的執行個體當中。因此,您要使用一個資料庫,並讓所有執行個體都從該資料庫中讀取資料,並將資料寫入到其中。
Google Cloud 提供多個儲存資料的選項。在此範例中,您會使用 Firestore 儲存每本書的資料。Firestore 是全代管、無伺服器的 NoSQL 文件資料庫,可讓您儲存及查詢資料。Firestore 可根據您應用程式的需求自動調整資源配置,您不使用應用程式時,Firestore 也會將資源調度率降至零。讓我們馬上開始新增您的第一本書。
-
如要為已部署的應用程式建立書籍,請按一下 [新增書籍]。
- 在「Title」欄位中,輸入
Moby Dick。 - 在「Author」欄位中,輸入
Herman Melville。 -
按一下 [儲存]。現在您已在 Bookshelf 應用程式中加入項目。
-
在 Google Cloud 控制台中,如要重新整理 Firestore 頁面,請按一下「重新整理」圖示 refresh。資料即會出現在 Firestore 中。Bookshelf 應用程式會將每本書儲存為具有唯一 ID 的 Firestore 文件,並將這些文件全都儲存在 Firestore 集合。基於本教學課程的目標,我們將這個集合稱為「books」。
Firestore 會使用 Firestore 用戶端程式庫儲存書籍資料。以下提供擷取 Firestore 文件的範例:
如要進一步瞭解如何使用 Firestore,請參閱將資料新增至 Firestore 的說明。
將上傳的檔案儲存在 Cloud Storage 中
現在您已新增了一本書,接下來請新增書籍的封面圖片。您無法將檔案儲存在執行個體中,資料庫也不適合用來儲存圖片檔。建議您可以使用 Cloud Storage。
Cloud Storage 是 Google Cloud主要的 blob 儲存庫。您可以使用 Cloud Storage 託管要在 Google Cloud中共用的應用程式資產。如要使用 Cloud Storage,您必須建立一個 Cloud Storage bucket,然後使用這個基本容器保存資料。
- 前往 Google Cloud 控制台的「Cloud Storage 瀏覽器」頁面。
- 按一下 [建立值區]。
- 在「建立值區」對話方塊中,將您的 Google Cloud 專案 ID 加到
_bucket字串的後面來輸入值區的名稱,讓名稱看起來像YOUR_PROJECT_ID_bucket這樣。這個名稱必須遵守值區命名規定,所有其他欄位則可以保留其預設值。 - 按一下 [建立]。
- 建立值區之後,您必須開放物件的公開存取權,以便使用者查看。如需開放物件公開存取權的相關操作說明,請參閱將資料設為公開。
-
請按一下 [編輯書籍],然後選取上傳後要當做書籍封面的圖片。舉例來說,您可以使用這個公有領域的圖片:

-
按一下 [Save]。系統會將您重新導向至首頁,當中會顯示 Bookshelf 應用程式項目。

Bookshelf 應用程式會使用 Cloud Storage 用戶端程式庫將上傳的檔案傳送至 Cloud Storage。
如要進一步瞭解如何使用 Cloud Storage,請參閱 Cloud Storage 簡介。
使用 Google Cloud Observability 監控應用程式
您已部署應用程式,並建立及修改了書籍資訊。如要為您的使用者監控這些事件,請使用應用程式效能管理。
使用 Cloud Logging 監控記錄檔
-
前往 Google Cloud的「Logs Explorer」(記錄檔探索工具)
前往「Logs Explorer」頁面現在,您可以即時監控自己的應用程式了。如果應用程式發生任何問題,這就是您要優先查看的地方之一。
- 在「資源」下拉式清單中,選取 [Cloud Run 修訂版本, bookshelf]。
透過 Error Reporting 監控錯誤
-
前往 Google Cloud 控制台的「Error Reporting」頁面。
前往「Error Reporting」頁面
Error Reporting 會醒目顯示應用程式中的錯誤和例外狀況,並讓您設定與其相關的快訊。 - 透過瀏覽器前往應用程式的
/errors網址。YOUR_CLOUD_RUN_URL/errors
這項操作會產生一個新的測試例外狀況,並傳送給 Google Cloud Observability。
-
返回 Google Cloud 控制台的「Error Reporting」頁面,稍後就會顯示新的錯誤。按一下「自動重新載入」,這樣您就不需要手動重新整理頁面。
清除所用資源
為避免因為本教學課程所用資源,導致系統向 Google Cloud 收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。
刪除專案
- 前往 Google Cloud 控制台的「Manage resources」(管理資源) 頁面。
- 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
- 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。