为了账号安全,请及时绑定邮箱和手机立即绑定

“gcloud app deploy”,部署错误的版本

“gcloud app deploy”,部署错误的版本

猛跑小猪 2021-10-19 16:29:29
编辑:我从.pyc文件中发现了这个问题。出于某种原因,一些编译器创建了.pyc包含旧代码的文件。当我将文件上传到服务器时,服务器不会编译.py文件。相反,它将运行.pyc从我的计算机上传的文件。我删除了所有.pyc文件,已部署,现在服务器运行新代码/EDIT当我运行时,gcloud app deploy我经常部署错误版本的应用程序。我的应用程序在 GAE 标准环境中运行,是使用 Python 2.7 编写的。我可以通过让我的 URL 之一返回硬编码字符串来轻松重现该问题,例如"test1". 现在,当我在部署之间更改此设置时,我经常会收到来自端点的先前写入的字符串。在本地服务器上运行应用程序时,更改后的返回字符串是正确的,但部署后该字符串可能来自早期版本。我必须将我的应用程序部署到测试和生产环境,我担心部署错误的代码。正确部署 gcloud 控制台时显示只有 2 个文件正在上传(如果我只编辑了静态返回字符串)。我尝试从 App Engine 控制台中删除所有其他版本。还尝试使用 flag --stop-previous-version。我还尝试添加新端点,在 gcloud 说部署成功后,这些端点仍然无法访问。如何确保我当前的代码得到正确部署?
查看完整描述

2 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

您关于pyc文件的注释表明您可能已经自定义了app.yaml'sskip_files部分并在此过程中意外擦除了其默认值,这通常会阻止部署pyc(和其他可能干扰文件)到 GAE。从那个文档(强调我的):


该skip_files具有以下默认:


skip_files:

- ^(.*/)?#.*#$

- ^(.*/)?.*~$

- ^(.*/)?.*\.py[co]$

- ^(.*/)?.*/RCS/.*$

- ^(.*/)?\..*$

默认模式的Emacs排除与形式的名称备份文件 #...#和...〜,.pyc和.pyo文件,文件在RCS版本控制目录和Unix隐藏着以点开始的名称的文件()。


要扩展上述正则表达式列表,请将上述列表复制并粘贴到您的app.yaml 并添加您自己的正则表达式。


因此,不再担心手动清理.pyc文件,请确保您的部分中仍然具有上述模式skip_files,特别- ^(.*/)?.*\.py[co]$是负责.pyc文件的部分。


查看完整回答
反对 回复 2021-10-19
  • 2 回答
  • 0 关注
  • 213 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信