App Engine 應用程式是由包含一或多項「服務」的單一應用程式資源組成。每項服務都可以個別設定,藉此使用不同的執行階段,以及在不同的效能設定下運作。在每項服務中,您可以部署該服務的「版本」。之後每個版本就會根據您設定的處理流量,在一或多個「執行個體」中執行。
應用程式的元件
建立應用程式資源時,系統會在 Google Cloud Platform 專案底下建立 App Engine 應用程式。App Engine 應用程式是頂層容器,包含構成應用程式的服務、版本與執行個體資源。建立 App Engine 應用程式時,所有資源皆會在您選擇的地區中建立,包含應用程式程式碼,以及設定、憑證與應用程式中繼資料的集合。
每個 App Engine 應用程式至少包含一項服務 (也就是 default
服務),能夠容納您所需的服務版本數量。
下圖說明一個執行多項服務的 App Engine 應用程式的階層結構。在本圖中,應用程式有兩項包含數個版本的服務,其中有兩個版本正在數個執行個體上活躍運作:
其他如 Cloud Datastore 的 GCP 服務,則是在 App Engine 應用程式中共用。詳情請參閱建構網路服務。
服務
在 App Engine 中利用「服務」將大型應用程式分解為邏輯元件,讓這些元件安全地共用 App Engine 的功能並互相通訊。整體而言,App Engine 服務的行為類似微服務,因此,您可在單一服務中執行整個應用程式,也可設計與部署多項服務,作為一組微服務來執行。
舉例來說,處理客戶要求的應用程式可能含有多個分別處理不同工作的服務,例如:
- 行動裝置發出的 API 要求
- 內部的管理類型要求
- 計費管道和資料分析等後端處理作業
App Engine 中的每項服務都是由應用程式的原始碼,以及對應的 App Engine 設定檔所組成。您部署至服務的一組檔案即代表該服務的一個「版本」,每當您將檔案部署至該服務時,就會在其中建立額外的版本。
版本
在每項服務中擁有應用程式的多個版本,能讓您在應用程式的不同版本之間迅速切換,以應付復原、測試或其他暫時性事件。您可以透過遷移或拆分流量的方式,將流量轉送至應用程式的一或多個特定版本。
執行個體
服務中的各個版本會在一或多個「執行個體」上執行。根據預設,App Engine 會調整應用程式的資源配置來配合負載。應用程式可以擴充執行中的執行個體數量以提供穩定可靠的效能,或是縮減閒置中的執行個體數量以降低成本。如要進一步瞭解執行個體,請參閱執行個體的管理方式。
應用程式要求
應用程式的每項服務,以及這些服務中每個版本的名稱都不能重複。您可以使用這些不重複的名稱,透過網址來指定並轉送流量至特定資源,例如:
http://my-version.my-service.my-project-id.appspot.com
https://my-version-dot-my-service-dot-my-project-id.appspot.com
系統即會將收到的使用者要求轉送至設為要處理流量的服務或版本。您也可以指定要求並將要求轉送至特定的服務與版本。詳情請參閱處理要求。
記錄應用程式要求
應用程式處理要求時,也能將本身的記錄訊息寫入 stdout
和 stderr
。如需深入瞭解應用程式的記錄檔,請參閱寫入應用程式記錄檔一文。
上限
您可以部署的服務與版本數量上限取決於應用程式的定價:上限 | 免費應用程式 | 付費應用程式 |
---|---|---|
每個應用程式的服務數量上限 | 5 個 | 105 個 |
每個應用程式的版本數量上限 | 15 個 | 210 個 |
每項可基本或手動調整資源配置的服務的執行個體數量也有上限:
每個手動/基本資源配置版本的執行個體數量上限 | ||
---|---|---|
免費應用程式 | 付費應用程式 (美國) | 付費應用程式 (歐洲) |
20 個 | 25 個 (us-central 為 200 個) |
25 |