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。
答案 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的尝试。同样,相应地配置文件也很重要。
总而言之,如果您能尝试所有不同的可能性来部署烧瓶数据库并观察结果,我将不胜感激。非常感谢。