编辑:我从.pyc
个文件中发现了问题。由于某种原因,某些编译器已创建包含旧代码的.pyc
文件。当我将文件上传到服务器时,服务器将不会编译.py
个文件。相反,它将运行从我的计算机上传的.pyc
个文件。我删除了所有.pyc
个文件,已部署,现在服务器运行新代码 / EDIT
运行gcloud app deploy
时,我经常会部署错误版本的应用程序。我的应用程序在GAE标准环境上运行,是使用Python 2.7编写的。
我可以通过让我的一个网址返回一个硬编码的字符串(例如"test1"
)来轻松重现该问题。现在,当我在部署之间进行更改时,我经常会从端点收到以前编写的字符串。
在本地服务器上运行应用程序时,更改后的返回字符串正确,但是在部署之后,该字符串可以来自早期版本。
我必须将我的应用程序部署到测试和生产环境中,我担心部署错误的代码。正确部署gcloud控制台时,显示只有2个文件正在上传(如果我仅编辑了静态返回字符串)。
我尝试从App Engine控制台中删除所有其他版本。
也尝试使用标志--stop-previous-version
。
我还尝试添加新的端点,并且在gcloud说成功部署之后,仍然无法访问这些端点。
如何确保当前代码正确部署?
答案 0 :(得分:1)
1)确保更改app.yaml
中的版本号
2)转到
https://console.cloud.google.com/appengine/versions?project= {您的项目ID}
告诉GCP服务哪个版本,停止哪个版本。
答案 1 :(得分:0)
关于pyc
文件的注释表明您可能已自定义app.yaml
的skip_files
部分,并在此过程中意外擦除了其默认值,这通常会阻止部署{{ 1}}(以及其他可能干扰文件)到GAE。从那个文档(重点是我的):
skip_files 具有以下默认值:
pyc
默认模式不包括格式为Emacs的备份文件
skip_files: - ^(.*/)?#.*#$ - ^(.*/)?.*~$ - ^(.*/)?.*\.py[co]$ - ^(.*/)?.*/RCS/.*$ - ^(.*/)?\..*$
和...〜,#...#
和.pyc
文件,.pyo
修订控制目录中的文件以及名称以a开头的Unix隐藏文件 点(。)。要扩展上述正则表达式列表,请复制并粘贴以上内容 列出到您的
RCS
中,并添加自己的正则表达式。
因此,不必再担心手动清理app.yaml
文件,请确保您在.pyc
部分中仍然具有上述模式,尤其是skip_files
这是负责{ {1}}个文件。