问题排查概览

本页提供一般问题排查信息,并附上其他页面的链接,方便您了解更多信息。

部署 Cloud Endpoints 配置时出错

如果 gcloud endpoints services deploy 命令返回错误消息,请参阅排查 Endpoints 配置部署问题,了解如何排查该错误。

部署 API 后端时出错

将 API 和 Extensible Service Proxy (ESP) 部署到 Google Cloud 后端的操作取决于平台。如需了解详情,请参阅以下问题排查指南:

响应错误

如果您向 API 发送请求后收到错误响应,请参阅排查响应错误,了解如何排查此错误。

检查所需服务

检查所需服务

Endpoints 和 ESP 至少需要启用以下 Google 服务:
姓名 标题
servicemanagement.googleapis.com Service Management API
servicecontrol.googleapis.com Service Control API
endpoints.googleapis.com Google Cloud Endpoints

在大多数情况下,gcloud endpoints services deploy 命令会启用这些必需的服务。但在以下情况下,gcloud 命令会成功完成,但不启用必需的服务:

  • 您使用了 Terraform 之类的第三方应用,但未添加这些服务。

  • 您将 Endpoints 配置部署到已明确停用这些服务的现有 Google Cloud 项目。

使用以下命令确认必需服务是否已启用:

gcloud services list

如果您没有看到列出的必需服务,请启用它们:

gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com
gcloud services enable endpoints.googleapis.com

同时启用 Endpoints 服务:

gcloud services enable ENDPOINTS_SERVICE_NAME

要确定 ENDPOINTS_SERVICE_NAME,您可以执行以下任一操作:

  • 部署 Endpoints 配置后,转到 Cloud 控制台中的端点页面。服务名称列下显示了可能的 ENDPOINTS_SERVICE_NAME 列表。

  • 对于 OpenAPI,ENDPOINTS_SERVICE_NAME 是您在 OpenAPI 规范的 host 字段中指定的值。对于 gRPC,ENDPOINTS_SERVICE_NAME 是您在 gRPC Endpoints 配置的 name 字段中指定的值。

如需详细了解 gcloud 命令,请参阅 gcloud 服务

检查所需权限

运行 Extensible Service Proxy 的实例需要调用 Service ManagementServiceControl 的权限。

检查调试信息

运行 Google Cloud CLI 并使用调试详细信息有助于进行调试。

gcloud --verbosity=debug COMMAND

此命令可让 Google Cloud CLI 输出错误的详细日志。输出信息可能包含请求和来自服务器的响应信息,具体取决于运行的命令。

启用服务

您可以使用 gcloud 检查服务是否已启用。

gcloud services list

如需显示特定服务的配置,请使用以下命令:

gcloud endpoints services describe SERVICE_NAME

代理 OAuth 失败但请求通过了

确保 OpenAPI 文档中存在 security 部分,且该部分包含 OAuth 定义。GitHub 上的使用入门示例提供了一个示例规范文件。

后续步骤