遷移到 Cloud Endpoints Frameworks 2.0 版

Cloud Endpoints Frameworks 過去稱為 Endpoints。為了區分這兩個版本,本頁面將新版本稱為 Endpoints Frameworks 2.0 版,舊版則稱為 Endpoints 1.0 版。本頁面說明如何將 Cloud Endpoints 1.0 版的應用程式遷移到 Endpoints Frameworks 2.0 版。此遷移包含程式庫與應用程式設定的變更,但不需要變更程式碼。

優點

Endpoints 2.0 版能發揮許多優點,其中包括:

  • 縮短要求的延遲時間
  • 更能與 App Engine 功能完善整合 (例如自訂網域)
  • 新的 API 管理功能

Endpoints Frameworks 2.0 版不影響 API 介面。遷移後,現有用戶端可繼續運作,不需變更任何用戶端程式碼。

功能總覽

下列功能與 Endpoints 1.0 版回溯相容:

  • JSON-REST 通訊協定,供所有 Google 用戶端程式庫使用
  • 探索服務
  • 所有現有的驗證功能 (OAuth2/OpenID 連結)
  • 針對產生的用戶端的用戶端程式庫支援
  • CORS (適用於不使用 Google JavaScript 用戶端程式庫的 JavaScript 呼叫端)
  • API 瀏覽器

流量拆分功能已無法使用。

目前排除的功能

下列功能已無法使用。如果您需要下列任一項功能,請提交功能要求

  • JSON-RPC 通訊協定,此為舊版 iOS 用戶端所需的通訊協定。如要為您的 Endpoints Frameworks 2.0 版 API 建立 iOS 用戶端,建議您使用 REST API 適用的 Google API Objective-C 用戶端程式庫
  • 自動 ETag
  • 自動 kind 欄位
  • IDE 整合
  • fields 部分回應
  • 自動建立 PATCH API 方法

從 Endpoints 1.0 版進行遷移

如要從 1.0 版遷移:

  1. 在應用程式的主目錄中建立名稱為 /lib 的子資料夾。

  2. 從應用程式的主目錄安裝程式庫:

     pip install -t lib google-endpoints --ignore-installed
    
  3. 從應用程式 app.yaml 檔案中的 libraries 區段,移除項目 - name: endpointsversion 1.0。例如:

    libraries:
    - name: endpoints   #Remove
      version: 1.0      #Remove
    
  4. app.yaml 檔案中的 libraries 區段,新增下列內容:

    libraries:
    - name: pycrypto
      version: 2.6
    - name: ssl
      version: 2.7.11
    

    Endpoints Frameworks 需要這些 pycryptossl 程式庫的版本。

  5. app.yaml 檔案中的 handlers 區段,將 url 指令從 - url: /_ah/spi/.* 變更為 - url: /_ah/api/.*

  6. 在應用程式的根目錄中,建立或修改名稱為 appengine_config.py 的檔案以加入下列內容:

    from google.appengine.ext import vendor
    
    vendor.add('lib')
    
  7. 檢查 API 版本字串。版本字串 (在 @endpoints.api(version='v1', ...) 裝飾器中指定) 會出現在 API 路徑中。如果您指定與 SemVer 標準相容的版本字串,則當您部署 API 時,只有主要版本編號會出現在您的 API 路徑中,例如名稱為 echo2.1.0 版 API,路徑就會是 /echo/v2。如果將您的 echo API 更新為 2.2.0 版,並部署具回溯相容性的變更,則路徑仍然為 /echo/v2。這種設定可讓您在進行具回溯相容性的變更時,更新 API 版本編號,而不會破壞用戶端的現有路徑。但如果您將 echo API 更新為 3.0.0 版 (因為您正在部署破壞性變更),則路徑就會變更為 /echo/v3

  8. 重新部署您的 Endpoints Frameworks 應用程式。

驗證新的部署

如要驗證新的架構是否正在提供流量:

  1. 傳送一些要求到新的部署。
  2. 造訪專案的「Stackdriver Logging」頁面。

    前往「Logs Viewer」(記錄檢視器) 頁面

  3. 如果要求顯示的路徑以 /_ah/api 做為開頭,則 Endpoints Frameworks 2.0 版現在正為您的 API 提供流量。記錄不應顯示任何以 /_ah/spi 做為路徑開頭的要求。這些要求指出 Endpoints 1.0 版 proxy 仍在處理要求。

新增 API 管理

Endpoints Frameworks 2.0 版新增了 API 管理功能,其中包括:

  • API 金鑰管理
  • API 共用
  • 使用者驗證
  • API 指標
  • API 記錄

如要開始使用,請前往開始使用 Python 適用的 Endpoints Frameworks 頁面。

疑難排解

本節說明遷移到 Endpoints Frameworks 2.0 版時系統常有的不穩定反應,以及建議的解決方案。

API 傳回 404 錯誤,但 API Explorer 仍正確列出 API。

遷移到 Endpoints Frameworks 2.0 版時,您需要移除舊的 Endpoints 1.0 版設定。如果舊的設定仍存在於應用程式設定中,Endpoints 服務就會繼續把應用程式視為 1.0 版。您可能會在 App Engine 記錄中看到要求被傳送到 /_ah/spi,導致 HTTP 404 錯誤被傳送到用戶端。

  1. 如果 app.yaml 檔案中有下列各行,請進行移除:

    handlers:
    - url: /_ah/spi/.*
      script: ...
    
  2. 請確保您的 app.yaml 檔案中的 handlers 區段有正確的路徑:

    handlers:
    # The endpoints handler must be mapped to /_ah/api.
    - url: /_ah/api/.*
      script: ...
    

錯誤訊息:ImportError: cannot import name locked_file

如果您的依附元件包含與 App Engine 不相容的 oauth2client 程式庫版本,就會發生這個錯誤。請參閱已知問題

本頁內容對您是否有任何幫助?請提供意見:

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

這個網頁
App Engine 適用的 Cloud Endpoints Frameworks
需要協助嗎?請前往我們的支援網頁