2016-10-04 85 views
0

我按照本指南将API部署到Google Cloud:https://cloud.google.com/endpoints/docs/quickstart-compute-engine。我成功地输入了命令:“gcloud beta service-management deploy swagger.yaml”,用于部署示例API。然后我错误地删除了该服务。当我尝试再次部署示例API时,我收到以下消息:如何取消删除Google API服务

“错误:(gcloud.beta.service-management.deploy)FAILED_PRECONDITION:服务exergo-143912.appspot.com已被删除,将在清除后30天。要重新使用此服务,请在https://cloud.google.com/service-management/create-delete之后取消删除服务。“

我遵循以下指示:https://cloud.google.com/service-management/create-delete恢复服务。我使用了以下命令:“curl -d'{}'https://servicemanagement.googleapis.com/v1/services/exergo-143912.appspot.com:undelete”。不过,我得到以下错误信息:

{ “错误”:{ “代码”:403, “消息”:“请求无法与客户端的项目被识别,请通过与有效的API密钥请求。“, ”status“:”PERMISSION_DENIED“ } }

任何帮助将不胜感激。谢谢

回答

1

创建/删除文档提到使用gcurl而不是curl,它会得到一个OAuth令牌。

请参阅入门指南设置gcurl: https://cloud.google.com/service-management/getting-started

如果你清理和也删除你的项目,你有7天恢复你的项目。恢复您的项目后,您可以取消删除API。如果已经过了7天,那么一切都将被清除,你将需要重新开始。

+0

我设置了gcurl并解决了这个问题。谢谢 安装gcurl所需的oauth2l时遇到了一个小问题。指南https://cloud.google.com/service-management/getting-started表示我们需要创建一个Oauth客户端ID并将其与oauth2l配合使用。这没有用。错误消息提到密钥必须附加到应用程序。由于我没有工作的应用程序,我用服务帐号密钥替换了Oauth客户端ID,并解决了问题。 –

+0

另一个问题是oauth2l安装在/root/.local/bin中,所以我必须使用工具的完整路径,它是/root/.local/bin/oauth2l –

相关问题