將後端轉換為服務

Google 自 2014 年 3 月 13 日起已淘汰 Backend API,並已於 2019 年 3 月 13 日全面停用。開發人員必須將所有後端執行個體遷移至 Services,否則執行個體將無法進行代管,也無法繼續提供流量。

原始的 App Engine 結構是以單一前端執行個體搭配選用的後端執行個體做為基礎。如果您有使用後端的應用程式,可能會想要將後端轉換為服務格式,以充分運用服務提供的其他功能,例如版本後端的功能。

App Engine 會以預設服務的非預設新版本自動執行現有的後端。系統會將常駐後端指派為手動調整資源配置,而動態後端則會指派為基本資源配置。

您可以將後端執行個體轉換為擁有名稱的版本化服務,且具有明確的資源調度類型及執行個體類別。您必須將原始的 backends.yaml 檔案替換為多個 .yaml 檔案,如下所示。

例如,下面是一個來自於 .yaml 檔案的片段,其定義了三個後端 (memdbworkercmdline):

backends:
- name: memdb
  class: B8
  instances: 5
- name: worker
  start: worker.app
  options: failfast
- name: cmdline
  options: dynamic

若要將這些後端轉換為服務,請為每一個服務建立一個獨立的 .yaml 檔案:

memdb.yaml 中:

service: memdb
version: uno
instance_class: B8
manual_scaling:
  instances: 5

worker.yaml 中:

service: worker
version: uno
# For failfast functionality, please use the ‘X-AppEngine-FailFast’ header on requests made to this service.
manual_scaling:
  instances: 1
handlers:
# If a service has an _ah/start handler, it should be listed first.
- url: /_ah/start
  script: worker.app

請注意,工作站後端的原始定義是使用 start: 標記來綁定指令碼 worker.app_ah/start 路徑。對服務而言,此繫結定義為具有明確 _ah/start 路徑的處理常式。此外,如有多個處理常式,_ah/start 處理常式會優先列出。

cmdline.yaml 中:

service: cmdline
version: uno
basic_scaling:
  max_instances: 1

Python SDK 包含一個指令碼,且該指令碼可以為您執行這些轉換。若給定兩個 .yaml 檔案,分別用於應用程式以及後端,指令碼會建立一個新的 .yaml 檔案為每個後端定義服務。使用上面的遷移範例,假設原始檔案定義了三個稱為 backends.yaml 的後端,且定義主要應用程式的檔案為 app.yaml。該指令碼會產生三個新的 .yaml 檔案:memdb.yamlworker.yamlcmdline.yaml。以下是呼叫指令碼的方式:

[PATH_TO_SDK]/google-cloud-sdk/platform/google_appengine/backends_conversion.py backends.yaml app.yaml
本頁內容對您是否有任何幫助?請提供意見:

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

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