設定檔

服務的每個版本定義於 .yaml 檔案,該檔案會提供服務與版本的名稱。YAML 檔案通常與其所定義的服務同名,但這並非必要條件。如要部署某項服務的數個版本,可以在同一個目錄中建立多個 yaml 檔案 (每個版本各一個)。

您通常可為每項服務建立目錄,其中包括該項服務的 YAML 檔案和相關原始碼。最上層應用程式目錄包含非必要的應用程式層級設定檔 (dispatch.yamlcron.yamlindex.yamlqueue.yaml)。以下範例示範三項服務。service1service2 的原始檔都和 YAML 檔案處在同一個層級。而 service3 中則包含兩種版本的 YAML 檔案。

YAML 服務階層圖

如果是小型、簡單的專案,可將所有應用程式檔存放於同一個目錄中:

小型 YAML 服務階層圖

每一個 YAML 檔案必須包含一個版本參數。若要定義預設服務,可以明確包含 service: default 參數,也可以將服務參數排除在檔案之外。

每項服務設定檔各定義特定服務/版本的資源調度類型和執行個體類別。視指定的資源調度類型而定,您必須使用不同的資源調度參數。若不指定資源調度,預設會自動調整資源配置。如需資源調度和執行個體類別設定的相關說明,請參閱 app.yaml 參考資料一節。

您也可以針對每一項服務指定設定,將網址要求對應到特定指令碼及識別靜態檔案,以提升伺服器效率。這些設定也包含在 yaml 檔案中,app.yaml 參考資料一節會一併說明。

預設服務

每個應用程式均有一項預設服務。您可以在 app.yaml 中使用 service: default 設定來定義預設服務,但也可以不這麼做。凡是與服務相關的設定參數皆可套用於預設服務。

選用設定檔

這些設定檔控制適用於應用程式中所有服務的選用功能:

  • dispatch.yaml
  • queue.yaml
  • index.yaml
  • cron.yaml
  • dos.yaml

若要在 App Engine 中部署這些設定檔的更新,請在設定檔所在目錄執行以下指令:

    gcloud app deploy [CONFIG_FILE]

範例

以下舉例說明如何設定應用程式的 YAML 檔案,這個應用程式包含三項服務:一項是處理網路要求的預設服務,另外兩項則是處理行動要求和後端處理的服務。

請先定義一個名稱是 app.yaml 的設定檔,用於處理所有網路相關要求:

runtime: python27
api_version: 1
threadsafe: true

若這個應用程式的 GCP 主控台專案 ID 是 simple-sample,則這項設定會建立一項預設服務,這項服務能自動調整資源配置,並且使用公開位址 http://simple-sample.appspot.com

接下來,假設您要建立一項處理行動網路要求的服務。這個範例的等待延遲時間上限只有一秒 (這是為了行動使用者的緣故),而且一定會有至少兩個閒置的執行個體。若要進行這樣的設定,您必須建立一個包含以下內容的 mobile-frontend.yaml 設定檔:

service: mobile-frontend
runtime: python27
api_version: 1
threadsafe: true

automatic_scaling:
  min_idle_instances: 2
  max_pending_latency: 1s

之後即可透過 http://mobile-frontend.simple-sample.appspot.com 存取這個檔案建立的服務。

最後,請新增一項名稱是 my-service 的服務,用於處理靜態後端工作。這可能是連續工作,將資料從 Datastore 匯出到 BigQuery。其工作量相對固定,因此,無論在任何指定時間,您只需要一項常駐服務。此外,這些工作需要進行大量的記憶體內部處理,因此,最好提高服務的記憶體設定。若要進行這項設定,就需建立一個包含以下內容的 my-service.yaml 設定檔。

service: my-service
runtime: python27
api_version: 1
threadsafe: true

instance_class: B8
manual_scaling:
  instances: 1

之後即可透過 http://my-service.simple-sample.appspot.com 存取這個檔案建立的服務。

請注意 manual_scaling: 設定。instances: 參數可讓 App Engine 知道需要為這項服務建立幾個執行個體。

另外建議您下載這個 Python 示範應用程式,好好研究一下。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Python 2 適用的 App Engine 標準環境