1

几年来,我有一个基于 Python 的 Google App Engine 应用程序使用 Cloud Endpoints 1.0 运行良好,没有发生任何事故。我在迁移到 Cloud Endpoints 2.0 时遇到了麻烦。

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

  • 我有一个名为gce1的服务版本,它使用 Endpoints 1.0 并设置为接收 100% 流量的默认服务。我可以将 API 客户端和 APIs Explorer 指向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响应,如果我查看 APIs Explorer,突然间它现在显示了一堆我认为是多年前的过时方法,并且不再在我当前的 API 中使用。我不知道这些是从哪里来的(它们在我的代码中不存在,并且已经好几年没有了),而且无论我做什么,我都无法获得为 GCE 2.0 API 提供服务的默认服务。

最大的问题是我有成千上万的用户都指向默认的 API URL,所以让他们开始指向并不那么容易gce2-dot-myservice,而且,我不能这样做没有任何意义t 使新默认值成为新默认值。几个月来,我一直致力于迁移到 GCE 2.0,离开 GCE 1.0 的截止日期越来越近,而 Google 支持自去年年底以来就没有对此主题作出回应。

我还应该提到我已经尝试过:

  • 使用 GCE2.0 代码直接将新服务推送到默认值
  • 推送一个完全没有 API 的新服务(可能会清除缓存或其他东西)
  • 使用各种不同的版本名称推送服务

这些都没有奏效,尽管我没有做过任何允许长时间延迟的操作,因为我正在与真实用户一起进行实时服务。

4

1 回答 1

0

这个问题现在已经解决了,所以对于大多数人来说,它应该不再发生。但是,在我的具体情况下,我有一个遗留 API 妨碍了我必须将其删除,这确实需要 Google 工程师的特别关注。

如果您有类似的问题,请访问issuetracker.google.com/issues/76031966并在此处发表评论。

感谢@saiyr 帮助追踪此事。

于 2018-04-07T00:23:19.587 回答