【发布时间】:2016-10-26 14:20:06
【问题描述】:
我正在尝试在 App Engine 上启动一个具有基本缩放功能的项目,但它无法启动。该应用程序适用于自动缩放。 /_ah/start 在应用程序处于自动缩放时返回 200。我不明白为什么应用程序只有在设置为自动缩放时才会启动。
这是app.yaml,这是一个非常标准的应用:
application: myapp
module: default
version: 1-1
runtime: python27
api_version: 1
threadsafe: yes
libraries:
- name: lxml
version: "2.3"
handlers:
- url: /static
static_dir: static
- url: /favicon\.ico
static_files: static/img/favicon.ico
upload: static/img/favicon.ico
- url: /_ah/(mapreduce|queue|warmup).*
script: wsgi.application
secure: always
login: admin
- url: /.*
script: wsgi.application
secure: always
这里是background.yaml,除了实例类和缩放参数之外,这与app.yaml 相同:
application: myapp
module: background
version: 1-1
runtime: python27
api_version: 1
threadsafe: yes
instance_class: B1
basic_scaling:
max_instances: 1
idle_timeout: 10m
libraries:
- name: lxml
version: "2.3"
handlers:
- url: /static
static_dir: static
- url: /favicon\.ico
static_files: static/img/favicon.ico
upload: static/img/favicon.ico
- url: /_ah/(mapreduce|queue|warmup).*
script: wsgi.application
secure: always
login: admin
- url: /(mapreduce|tasks).*
script: wsgi.application
secure: always
login: admin
- url: /.*
script: wsgi.application
secure: always
当应用程序处于自动缩放模式时,/_ah/start 返回 OK 和 HTTP 代码 200。当它处于基本缩放模式时,我在日志中看到的所有内容都是重复尝试以 400 到达 /_ah/start 失败HTTP 代码。由于这些运行完全相同的代码,我无法理解这里发生了什么。我可能遗漏了一些明显的东西......但我看不到它。想法?
-- 已更新--
这是我使用curl 在本地访问/_ah/start 端点时看到的确切输出:
curl -i -X GET http://localhost:8000/_ah/start
HTTP/1.1 200 OK
content-type: text/html; charset=utf-8
Cache-Control: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Content-Length: 3
Server: Development/2.0
Date: Fri, 24 Jun 2016 09:08:06 GMT
Ok.
...以及设置自动缩放时在服务器上:
curl -i -X GET https://myapp.appspot.com/_ah/start
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Date: Fri, 24 Jun 2016 09:11:41 GMT
Server: Google Frontend
Content-Length: 3
Alternate-Protocol: 443:quic
Alt-Svc: quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
Ok.
...在服务器上设置基本缩放时它只是挂起。
【问题讨论】: