似乎最近(一年之内),当我将更新部署到 App Engine 应用程序时,它会继续提供以前的 Python 代码。
我可以转到控制台并在下面:
版本 -> 调试 -> 源
看到最新版本已经部署。当它出错时,日志中给出的链接指向新源,但根据明确的结果,实际上是旧源在服务。这已经发生在多个应用程序上,唯一的解决方案是等待一天再试一次。
我用来从本地 Windows 开发环境部署的命令是:
gcloud app deploy --project xxxxxxxxxx --version 1
我试过修改版本号,但结果是一样的。
我可能遗漏了什么?
进一步尝试:我将部署命令更改为:
gcloud app deploy --project xxxxxxxx --promote --stop-previous-version
我删除了版本开关,以便 App Engine 创建自己的版本编号。结果是一样的:之前的版本继续服务。
为了验证,我添加了一个日志行:
logging.info('Last edit: 5/28/2018 11:08')
client_id = os.environ['CLIENT_ID']
logging.info('CLIENT_ID = ' + str(client_id))
第一行是添加的,另外两行是旧的。在日志跟踪中,它显示了第二个日志的输出,而不是第一个。奇怪的是,日志中的行号是中间那一行,显示的是新源,执行的是旧源。
最佳答案
我使用的是原始的适用于 Python 的 App Engine SDK。显然,您必须在本地运行才能生成 .pyc 文件。它在本地工作,但在网络上遇到问题。所以我做了一些调整来解决这个问题,但之后没有尝试在本地运行。所以虽然上传的 .py 是新的,但是 .pyc 是旧的。
关于python - App Engine 继续为以前的 Python 版本提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50552534/