GAE Python Gcloud - 在生产中运行的命令

时间:2016-06-05 16:15:35

标签: python google-app-engine deployment gcloud

我正在尝试使用gcloud将我的python应用程序部署到生产中,但每次都会弹出这个奇怪的消息,而且我没有在Google搜索中找到任何信息......

当我跑步时:

gcloud preview app deploy

此消息apepars:

This looks like a Python app.  If so, please enter the command to run 
to run the app in production (enter nothing if it's not a python app):

我尝试使用appcfg.py执行常规命令:

❯ appcfg.py -A <appname> update app.yaml

但每次都会抛出超时。

任何人都知道在这种情况下我应该做些什么?

谢谢!

修改

我的App.yaml

runtime: python
api_version: 1
threadsafe: yes
vm: true

handlers:

- url: .*
  script: main.app

- url: /_ah/queue/deferred
  script: google.appengine.ext.deferred.deferred.application
  login: admin

  #libraries:
  #- name: MySQLdb
  #version: "latest"

builtins:
- remote_api: on
- deferred: on

resources:
  cpu: .5
  memory_gb: 2.3
  disk_size_gb: 10

编辑2

我已将运行时更改为自定义,现在它不再询问任何内容。现在的问题是它会抛出超时:

(gcloud.preview.app.deploy) Error Response: [13] Timed out when starting VMs.  It's possible that the application code is unhealthy.  (0/2 ready, 2 still deploying)

我找到了有关此错误的信息,如果我弄清楚的话,我会回到这里。

由于

3 个答案:

答案 0 :(得分:4)

由于这个问题没有被接受的答案,我会在这里为任何未来的读者发布一个。

部署正在提示输入点,因为它未在app.yaml中指定。在灵活环境中运行Python运行时应用程序需要此字段。将运行时更改为“自定义”将不会提示,但应用程序容器仍然不知道如何运行您的应用程序,因此VM将无法启动。

文档中提供了更多详细信息:

应用程序启动 https://cloud.google.com/appengine/docs/flexible/python/runtime#application_startup

答案 1 :(得分:1)

我有同样的错误。我将“cd”编辑到app.yaml所在的目录中,然后再次运行该命令并成功部署。

答案 2 :(得分:1)

我遇到了同样的问题,发现我需要在app.yaml中添加“entrypoint”属性并将其配置为指向我的启动脚本。我正在使用以下app.yaml运行Python 3.5应用程序(Flask)。请注意入口点属性:

runtime: python
threadsafe: true
env: flex
entrypoint: gunicorn -b :$PORT application:APP

runtime_config:
     python_version: 3.5

handlers: 
- url: /.*
  script: application.APP