【问题标题】:GAE Go 1.11 instance startup issues when migrating from flex to standard从 flex 迁移到标准时的 GAE Go 1.11 实例启动问题
【发布时间】:2019-09-14 20:05:11
【问题描述】:

我正在将一个使用 Go 1.11 运行时的简单应用程序从 AppEngine flex 环境迁移到标准环境,因为 flex 对我的低流量站点来说非常昂贵(而且标准直到最近才可用于此运行时)。每次 GAE 为我的应用程序访问 /_ah/start 端点时,它都会记录 301 和以下错误:Process terminated because it failed to respond to the start request with an HTTP status code of 200-299 or 404.

我的服务器确实有一个/_ah/start 的处理程序,它只写一个 200 并在本地正常工作。我还尝试为app.yaml 中的所有路由添加一个处理程序,以确保对 AppEngine 负载平衡器的请求实际上被路由到我的服务器,但它仍然无法正常工作。我从服务日志中知道我的服务器正在启动并侦听正确的端口,但它会一遍又一遍地重新启动,并且由于 GAE 启动请求的这个问题而实际上无法处理任何请求。

这是我的app.yaml

runtime: go111
instance_class: B1
basic_scaling:
  max_instances: 1
handlers:
- url: /.*
  script: auto

Edit: Here's a screenshot of the logs

【问题讨论】:

  • 显示为应用程序记录的消息以及运行 net/http 服务器的代码。
  • 编辑了我的原始帖子以包含日志的屏幕截图!
  • 应用程序以重定向响应 /_ah/start(状态 301)。您是如何确定应用程序以本地运行的 200 响应的?应用程序是否重定向任何请求?
  • 当我在本地运行我的服务器时,我可以点击 /_ah/start 并返回 200。我不确定如何在本地模拟实际 AppEngine 环境的设置,这样基本上只是验证我的server 在更一般的意义上按预期工作,而不是在 AppEngine 的上下文中工作。当我部署到 GAE 时,我不知道重定向来自哪里,但有趣的是,第一个错误日志发生在我的服务器记录任何内容之前,这意味着它试图在运行 main.go 之前到达那个端点。
  • 我的服务器只将http流量重定向到https,这是我在使用flex环境时添加的。我想知道这是不是罪魁祸首?我会尝试删除该中间件,看看会发生什么。

标签: google-app-engine go


【解决方案1】:

应用程序根据 cmets 中的讨论将 http 重定向到 https。

在标准环境中运行的应用程序必须服务于 http。 App Engine 基础架构处理 https。

通过删除从 http 到 https 的重定向来修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    • 2020-08-05
    • 2020-02-27
    • 1970-01-01
    相关资源
    最近更新 更多