无法在现有服务上部署Google Cloud Endpoints 2.0

时间:2018-03-23 05:21:30

标签: google-app-engine google-cloud-endpoints google-cloud-endpoints-v2

我已经使用基于Python的Google App Engine应用程序使用Cloud Endpoints 1.0工作了好几年没有发生任何事故。我只有在迁移到Cloud Endpoints 2.0时遇到麻烦。

目前我已经清除了其他类似问题中描述的许多先前障碍后,我处于以下状态:

  • 我有一个名为 gce1 的服务版本,它使用端点1.0,并设置为接收100%流量的默认服务。我可以将API客户端和API资源管理器指向gce1-dot-myservice.appspot.com和默认myservice.appspot.com,一切正常。我可以在日志中验证通过此处的任何内容都使用GCE 1.0。
  • 我的服务的第二个版本名为 gce2 ,默认情况下没有收到任何流量,但如果我将API客户端或API资源管理器指向gce2-dot-myservice.appspot.com它就可以了,我可以在日志中验证通过此处的任何内容都使用GCE 2.0。

很好,对吗?因此,似乎我需要做的就是将所有流量迁移到gce2并完成。

但是......当我这样做时,一切都会破裂!默认myservice.appspot.com提供对我现有客户端的405 POST Method Not Allowed个响应,如果我查看API资源管理器,它现在突然显示了一堆过时的方法,我认为这些方法来自多年前并且不再使用在我目前的API中。我不能告诉他们来自哪里(他们在我的代码中没有任何地方,并且已经多年没有了),我无法获得默认服务来服务GCE 2.0 API,无论如何我做了什么。

最大的问题是,我有成千上万的用户都指向默认的API网址,因此让它们开始指向gce2-dot-myservice并不容易,此外,我无法将新默认值设为新默认值,这没有任何意义。我几个月来一直致力于向GCE 2.0的迁移,到目前为止GCE 1.0下线的截止日期越来越近了,谷歌支持部门自去年年底以来就此问题没有回应。

我还应该提一下我的尝试:

  • 将使用GCE2.0代码的新服务直接推送到默认
  • 推送没有API的新服务(可能清除缓存或其他内容)
  • 推送具有各种版本名称的服务

这些都没有奏效,尽管由于我正在与真实用户进行实时服务,因此我们还没有做任何允许长时间延迟。

1 个答案:

答案 0 :(得分:0)

此问题现已解决,因此对于大多数人来说,它应该不再发生。但是,在我的具体情况下,我有一个遗留下来的API,不得不删除,这需要Google工程师的特别关注。

如果您遇到类似问题,请访问issuetracker.google.com/issues/76031966并在那里发表评论。

感谢@saiyr帮助跟踪此事。