使用 cron 作业命中 _ah/warmup 处理程序,在日志中获取 301。为什么要重定向?不应该 return 200 吗?
Using cron job to hit _ah/warmup handler, getting 301 in logs. Why is it redirecting ? Shouldn't it return 200?
所以我的用例是这样的,我最好在 app.yaml 中使用 min_instance 归零,但默认版本总是 运行ning 一个实例。
因此,为了做到这一点,我安排了一个 cron 作业,每 14 分钟触发一次 _ah/warmup,因为实例在 15 分钟没有 activity 后关闭。
现在我无法理解的是,当 cron 作业是 运行 时,它会失败,并且在日志中显示 301。而这是我的预热处理程序的代码。
def warmup(request):
return JsonResponse(data={})
不应该 return 200 吗?我还注意到 objective 正在通过此实现,即使它是重定向也是如此。实例不会关闭。但我很好奇为什么它会重定向?
Cron 作业和 _ah/URLs 最终被 App Engine 称为非 HTTPS 请求。强行如此:)
如果您通过 server/framework 强制使用 SSL,那么您正在进入重定向循环。因此,App Engine 将使用非 HTTPS 调用它,您的 server/framework 将尝试将其“升级”为 HTTPS,然后 App Engine 将强制其返回非 HTTPS,如此它将继续,直到重定向限制为达到。
要解决这个问题,请想办法免除 /_ah/warmup URL 被强制使用 HTTPS。实际上,您可以首先使用 HTTPS 在浏览器中点击 /_ah/warmup 请求,然后注意它将降级为 HTTP(一旦您修复到位)
所以我的用例是这样的,我最好在 app.yaml 中使用 min_instance 归零,但默认版本总是 运行ning 一个实例。
因此,为了做到这一点,我安排了一个 cron 作业,每 14 分钟触发一次 _ah/warmup,因为实例在 15 分钟没有 activity 后关闭。
现在我无法理解的是,当 cron 作业是 运行 时,它会失败,并且在日志中显示 301。而这是我的预热处理程序的代码。
def warmup(request):
return JsonResponse(data={})
不应该 return 200 吗?我还注意到 objective 正在通过此实现,即使它是重定向也是如此。实例不会关闭。但我很好奇为什么它会重定向?
Cron 作业和 _ah/URLs 最终被 App Engine 称为非 HTTPS 请求。强行如此:)
如果您通过 server/framework 强制使用 SSL,那么您正在进入重定向循环。因此,App Engine 将使用非 HTTPS 调用它,您的 server/framework 将尝试将其“升级”为 HTTPS,然后 App Engine 将强制其返回非 HTTPS,如此它将继续,直到重定向限制为达到。
要解决这个问题,请想办法免除 /_ah/warmup URL 被强制使用 HTTPS。实际上,您可以首先使用 HTTPS 在浏览器中点击 /_ah/warmup 请求,然后注意它将降级为 HTTP(一旦您修复到位)