【问题标题】:GAE Doesn't Deploy Latest CodeGAE 不部署最新代码
【发布时间】:2018-07-23 13:31:07
【问题描述】:

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 添加到我的部署中,一切看起来都很棒,除了:

INFO:找不到任何与 [应用程序路径]。云诊断工具可能无法显示 此部署的正确源代码。

代码在调试器中出现更新,这很奇怪。最新版本 100% 部署在 App Engine 控制面板中。

这真的很令人困惑,因为在部署时,没有 repo,但代码出现在调试器中,但由于资源不足,端点无法运行。

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

更新

有些帖子建议进行热身。我遵循了here 的指导方针,但仍然没有骰子。我在访问 /test/_ah/warmup 时收到 404。

【问题讨论】:

  • “此请求导致...”日志基本上只是宣布请求的冷启动,预计在初始部署时。此外,您无需指定runtime_config。另外,请尝试仅在 requirements.txt 文件中指定 Flask,而不是在 app.yaml 中指定。

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


【解决方案1】:

这个问题可能是由多种不同的原因引起的,可能有很多因素在起作用,在大多数情况下,当 app.yaml 未能将烧瓶库分配为“烧瓶”库时显示错误 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。相应地配置文件也很重要。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    相关资源
    最近更新 更多