已知問題

本頁面包含了 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 文件時,Cloud Endpoints 會拒絕包含以斜線結尾之路徑的 OpenAPI 文件,例如:

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

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

Java

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

Java 適用的 Cloud Endpoints Frameworks - 1.0.14 以下版本

包括 Google 服務設定中的新欄位會導致 Cloud Endpoints Frameworks Java 程式庫在剖析服務設定時失敗的問題。如果使用 2024 年 12 月 5 日後建立的服務設定,會發生類似以下的錯誤:

Failed to parse the HTTP response as service configuration
com.google.api.config.ServiceConfigException: Failed to parse the HTTP response as service configuration

如要進一步瞭解如何升級至 1.0.15 以上版本,請參閱版本資訊

舊版 (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.1
# Newer versions of rsa module are incompatible with Python 2.7
rsa==4.5; python_version < '3'

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

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

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

發生這個問題的原因,在於 python-future 程式庫 (適用於 Python 的 Endpoints Frameworks 程式庫和 Django-six 程式庫皆有這個程式庫) 之間發生版本衝突。目前尚未得知造成衝突的 Django-six 程式庫確切版本。