GAE未部署最新代码

时间:2018-07-23 13:31:07

标签: python python-2.7 google-app-engine

GAE不会通过gcloud更新已部署的代码。例如,我创建了此方法:

main.py

@app.route('/test',methods=['GET'])
def test():
    print 'print test'
    return 'test'

app.yaml

runtime: python27
api_version: 1
threadsafe: true

runtime_config:
  python_version: 2

instance_class: F2  

handlers:
- url: /.*
  script: main.app

libraries:
- name: flask
  version: 0.12

部署应用程序:

gcloud app deploy app.yaml queue.yaml --project $PROJECT

然后我在访问/test时得到404。

我跟踪了日志错误:

  

此请求导致您的应用程序开始了新的流程,   因此导致您的应用程序代码首次被加载。   因此,此请求可能需要比典型请求更长的时间并使用更多的CPU   请求您的申请。

我看了this article,它指出每次访问URL都不会出错。我知道。

我在部署中添加了--verbosity=info,除了:

  

信息:找不到与之关联的任何远程存储库   [应用程式路径]。云诊断工具可能无法显示   此部署的正确源代码。

代码在derugger中出现了更新,这很奇怪。最新版本已100%部署在App Engine仪表板中。

这确实令人困惑,因为在部署时没有存储库,但是代码显示在调试器中,但是由于没有足够的资源,端点无法运行。

这里似乎发生了很多事情,不确定是什么问题。

更新

有些帖子建议热身。我遵循了准则here,但仍然没有骰子。访问/test/_ah/warmup时得到404。

1 个答案:

答案 0 :(得分:2)

此问题可能是由多种不同原因引起的,可能有很多因素在起作用,在大多数情况下,错误404显示当app.yaml无法将flask库默认分配为“ flask”库时,错误404显示为捆绑在Google App Engine包含的库中。因此,需要手动添加。确定问题是否是部署问题的一种方法是转到此链接(https://console.cloud.google.com/logs/viewer),然后检查是否记录了任何日志。如果查看器中未显示任何日志,则很可能意味着该问题甚至在实际上导致服务器崩溃之前就已发生。

此外,我强烈建议您通过以下链接(https://codelabs.developers.google.com/codelabs/cloud-vision-app-engine/index.html?index=..%2F..%2Findex#0)在Google Cloud App Engine环境中部署Flask。

此外,我想提出一个建议,如果可能的话,尝试使用“ webapp2”库进行解决。链接如下(http://webapp2.readthedocs.io/en/latest/index.html

我还注意到有尝试运行queue.yaml的尝试。同样,相应地配置文件也很重要。

总而言之,如果您能尝试所有不同的可能性来部署烧瓶数据库并观察结果,我将不胜感激。非常感谢。