已知問題

本頁面包含了 Cloud Endpoints Frameworks 的已知問題。

Java 和 Python

本節說明已知會對 Endpoints Frameworks 的 Java 和 Python 版本造成影響的問題。

要求逾時上限

對於使用 Endpoints Frameworks 第 2 版的 API,要求逾時上限為 60 秒。

Endpoints Frameworks 遷移

將 API 遷移至 Endpoints Frameworks 第 2 版時,您必須將 API 部署到新的 App Engine 應用程式。如果您重複使用舊的 App Engine 應用程式,開頭是第 1 版路徑 /_ah/spi 的要求可能會轉送至 Endpoints Frameworks 第 2 版後端,此後端預期的路徑應以 /_ah/api 開頭。

自動調整資源配置執行個體的效能不佳

App Engine 提供三種資源調度類型:基本、手動以及自動。Endpoints Frameworks 使用自動調整資源配置執行個體並不支援的背景執行緒。Endpoints Frameworks 必須與 Google 服務通訊,以進行配額檢查及回報 API 活動等工作。對於基本和手動資源調度執行個體,背景執行緒會執行通訊作業,以避免要求的執行速度變慢。但是自動調整資源配置執行個體並不支援背景執行緒。因此,系統會在要求期間與 Google 服務進行通訊。Endpoints Frameworks 仍然正常運作,但效能可能會降低。

基於這個問題,您可能會希望設定其他的資源調度類型。請參閱 App Engine 說明文件的以下各節:

不支援以斜線結尾的路徑

使用 gcloud endpoints services deploy 部署 OpenAPI 文件時,若 OpenAPI 文件包含以斜線結尾的路徑,則 Cloud Endpoints 會拒絕這類的 OpenAPI 文件,例如:

paths:
  "/echo/":
    post:
      description: "Echo back a given message."

在 Endpoints Frameworks 中,您必須移除 Python 方法裝飾器或 Java 方法註解中的結尾斜線。

Java

本節說明 Java 適用的 Endpoints Frameworks 的已知問題。

舊版 (v1) Java Endpoints Frameworks

適用於 Java 的 Endpoints Frameworks 第 1 版已知存在一項錯誤,會導致系統在加註列舉時發生例外狀況。這個問題是由對舊版 Jackson 上的依附元件引起的。為解決這個問題,您必須遷移至 Endpoints Frameworks 第 2 版

Python

本節說明 Python 適用的 Endpoints Frameworks 的已知問題。

錯誤訊息:ImportError: cannot import name locked_file

執行含有 requirements.txt 檔案的 pip install 時,系統可能會顯示 ImportError: cannot import name locked_file 錯誤訊息。這是因為 pip 安裝了與 google-endpoints-api-management 不相容的 oauth2client 套件版本。為解決這個問題,請確保您的 requirements.txt 檔案內首先出現 google-endpointsgoogle-endpoints-api-management 程式碼行。例如:

google-endpoints==4.8.0
google-endpoints-api-management==1.11.0

其他要求請加在這些程式碼行「之後」

在本機測試時,API 傳回 404 錯誤

問題:當您使用 dev_appserver.py 在本機測試您的 API 時,所有端點都傳回 404,但當您部署 API 至 App Engine 時,端點卻能正常回應。這個問題會出現在使用 Django-six 程式庫的應用程式中。

會出現這個問題,是因為 python-future 程式庫 (適用於 Python 的 Endpoints Frameworks 程式庫和 Django-six 程式庫都有這個程式庫) 之間的版本衝突所造成的。目前尚未得知造成衝突的 Django-six 程式庫確切版本。

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

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

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