无法在现有服务上部署 Google Cloud Endpoints 2.0
can't deploy Google Cloud Endpoints 2.0 on existing service
我有一个基于 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 客户端或 APIs Explorer 到
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,所以让他们开始指向 [=并不容易=17=],此外,我不能让新的默认值成为新的默认值是没有意义的。几个月来,我一直致力于向 GCE 2.0 的迁移,离 GCE 1.0 的最后期限越来越近,Google 自去年年底以来,支持部门没有就此主题做出回应。
我还应该提到我已经尝试过:
- 默认直接推送GCE2.0代码的新服务
- 推送一个根本没有 API 的新服务(可能清除缓存或其他东西)
- 推送各种版本名称的服务
None 这些都有效,虽然我没有做任何一个,因为我正在为真实用户提供实时服务,所以允许长时间延迟。
这个问题现在已经解决了,所以对于大多数人来说应该不会再出现了。但是,在我的具体案例中,我有一个遗留 API 妨碍了我,必须删除它,这确实需要 Google 工程师的特别关注。
如果您有类似问题,请访问 issuetracker.google.com/issues/76031966 并在那里发表评论。
感谢@saiyr 帮助追踪此事。
我有一个基于 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 客户端或 APIs Explorer 到
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,所以让他们开始指向 [=并不容易=17=],此外,我不能让新的默认值成为新的默认值是没有意义的。几个月来,我一直致力于向 GCE 2.0 的迁移,离 GCE 1.0 的最后期限越来越近,Google 自去年年底以来,支持部门没有就此主题做出回应。
我还应该提到我已经尝试过:
- 默认直接推送GCE2.0代码的新服务
- 推送一个根本没有 API 的新服务(可能清除缓存或其他东西)
- 推送各种版本名称的服务
None 这些都有效,虽然我没有做任何一个,因为我正在为真实用户提供实时服务,所以允许长时间延迟。
这个问题现在已经解决了,所以对于大多数人来说应该不会再出现了。但是,在我的具体案例中,我有一个遗留 API 妨碍了我,必须删除它,这确实需要 Google 工程师的特别关注。
如果您有类似问题,请访问 issuetracker.google.com/issues/76031966 并在那里发表评论。
感谢@saiyr 帮助追踪此事。