我想在Google App Engine上设置一个临时环境,并在以下问题中找到了很好的指导:How to set up a staging environment on Google App Engine
我唯一没有回答的问题是如何在这种情况下处理Cron作业。理想情况下,我只需要更改要部署到生产的版本,但我担心这意味着所有cron作业也会在暂存版本上运行,或者情况并非如此?
答案 0 :(得分:1)
如果您使用的是其他版本的方法,则需要注意this:
如果已为作业设置目标参数,则请求为 发送到指定的版本。否则Cron请求被发送到 应用程序的默认版本。
我一直在使用target
参数将cron作业定向到不同的模块,基于上面的引用我猜测它可以用来将作业定向到不同的版本,使用module routing via URL,可能是这样的:
target: version
或
target: version-dot-module
就个人而言,我更喜欢不同的应用程序方法,以确保升级和生产环境之间不会产生干扰,即使在执行大规模重新打破后向兼容性时也是如此:)
至于方法,我使用来自代码的2个不同分支的2个不同工作区,它们之间的差异很小(application
文件中的.yaml
字段以及其他与分段相关的增量):
staging
工作空间&分支production
工作空间&分支每当我对staging
分支中的代码感到满意时我:
staging
production
分支
production
工作区并从中进行部署 - >更新production
应用staging
工作空间中我需要的任何内容(如果需要,还可以将更改提交到staging
分支)staging
工作区部署 - >更新staging
应用该方法也可能在不同版本的方法中使用,version
文件中的.yaml
字段在2个分支中不同。