本页介绍 Cloud Endpoints Frameworks 中的已知问题。
Java 和 Python
本部分介绍影响 Java 版 Endpoints Frameworks 和 Python 版 Endpoints Frameworks 的已知问题。
请求超时上限
对于使用 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 中的已知问题。
旧版 (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-endpoints
和 google-endpoints-api-management
,例如:
其他要求添加在这些代码行之后。
在本地测试时,API 返回 404
错误
问题:使用 dev_appserver.py
在本地测试 API 时,所有端点返回 404
;但将 API 部署到 App Engine 后,端点可按预期响应。此问题是在使用 Django-six 库的应用中发现的。
这是由 python-future
库的版本冲突引起的,Python 版 Endpoints Frameworks 库和 Django-six 库中都包含该库。目前还不知道确切哪个版本的 Django-six 库会引起这种冲突。