当前位置:  开发笔记 > 编程语言 > 正文

如何自动删除旧的Google App Engine版本实例?

如何解决《如何自动删除旧的GoogleAppEngine版本实例?》经验,为你挑选了1个好方法。

我正在尝试使用更具成本效益的方式来部署我的Rails应用程序,并通过Ruby Starter项目来了解Google Cloud Platform.

几乎是完美的,并且在价格方面肯定具有竞争力,但我无法弄清楚如何在重新部署后自动删除旧部署的版本实例.

即:假设我有一个版本的每个实例运行:

计算引擎 - > VM实例

然后我对我的应用进行了更改并重新部署:

$ gcloud preview app deploy app.yaml worker.yaml --promote

所以现在我已经部署了每个实例的两个版本(因为Google智能地在它们之间切换,我假设):

计算引擎 - > VM实例增加了一倍

但现在呢?这些实例是否会自行关闭?到目前为止,我发现摆脱它们的最好方法是从教程的删除项目页面:

删除应用版本

您可以在" 版本"页面中找到应用版本列表.要删除非默认版本,请选中复选框,然后单击" 删除".

AppEngine上/版本

Google App Engine上的每个人都只是手动删除其应用的旧部署吗?



1> Alex Martell..:

要停止所有模块的所有非默认版本的所有实例(独立于这些模块所使用的语言),您可以control使用modulesAPI 添加一个用Python编写的小模块:

from google.appengine.api.modules import modules

# core logic (inside a cron or other handler)
for m in modules.get_modules():
    dv = modules.get_default_version(m)
    for v in modules.get_versions(m):
        if v != dv: modules.stop_version(m, v)

这不会删除非默认版本(modulesAPI似乎当前不支持删除),但确保它们的实例都没有运行(因此不会对它们产生任何费用).

这个核心逻辑用于将它包装在处理程序中,因此您可以根据需要触发它,例如在cron作业中,或者从外部触发的"常规"处理程序(使用适当的auth),例如通过wget或者在你的bash脚本中卷曲.

我不相信有Python的Ruby版本google.appengine.api.modules.modules,但是,我可能错了......我找不到一个.但是,一个简单的Python编码模块应该允许您控制以任何其他App Engine语言编码的模块(因为App Engine允许您混合和匹配以不同语言编码的模块).

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有