本页提供一般问题排查信息,并附上其他页面的链接,方便您了解更多信息。
部署 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 |
在大多数情况下,gcloud endpoints services deploy
命令会启用这些必需的服务。但在以下情况下,gcloud
命令会成功完成,但不启用必需的服务:
您使用了 Terraform 之类的第三方应用,但未添加这些服务。
您将 Endpoints 配置部署到已明确停用这些服务的现有 Google Cloud 项目。
使用以下命令确认必需服务是否已启用:
gcloud services list
如果您没有看到列出的必需服务,请启用它们:
gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com
同时启用 Endpoints 服务:
gcloud services enable ENDPOINTS_SERVICE_NAME
要确定 ENDPOINTS_SERVICE_NAME,您可以执行以下任一操作:
部署 Endpoints 配置后,前往 Cloud 控制台中的 Endpoints 页面。服务名称列下显示了可能的 ENDPOINTS_SERVICE_NAME 列表。
对于 OpenAPI,ENDPOINTS_SERVICE_NAME 是您在 OpenAPI 规范的
host
字段中指定的值。对于 gRPC,ENDPOINTS_SERVICE_NAME 是您在 gRPC Endpoints 配置的name
字段中指定的值。
如需详细了解 gcloud
命令,请参阅 gcloud
服务。
检查所需权限
运行 Extensible Service Proxy 的实例需要调用 Service Management 和 ServiceControl 的权限。
对于部署在 Cloud Run 上的 ESP,请参阅在 Cloud Run 中构建新的 ESPv2 映像,了解详情。
对于在 Compute Engine 上部署的 ESP,请参阅在 Compute Engine 中检查所需权限教程了解详情。
对于部署在 GKE 上的 ESP,请参阅在 GKE 中检查所需权限了解详情。
检查调试信息
运行 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 上的使用入门示例提供了一个示例规范文件。