如何通过gcloud CLI删除已弃用/过时/标记删除的自定义VM镜像?
正确筛选并删除已弃用/过时/标记删除的自定义VM镜像
精准筛选目标镜像
用gcloud compute images list搭配过滤条件,就能精准定位符合要求的镜像,避免混入非目标项:
筛选已弃用(DEPRECATED)的镜像
gcloud compute images list \ --filter="status=DEPRECATED" \ --format="value(name)"
筛选标记了删除计划(通过--delete-in/--delete-on设置)的镜像
这类镜像的deprecated.deletionDate字段会存在有效值,直接过滤该字段即可:
gcloud compute images list \ --filter="deprecated.deletionDate:*" \ --format="value(name)"
筛选已过时(OBSOLETE)的镜像
gcloud compute images list \ --filter="status=OBSOLETE" \ --format="value(name)"
组合筛选(比如同时满足已弃用+标记删除)
用AND拼接多个条件,实现更精准的筛选:
gcloud compute images list \ --filter="status=DEPRECATED AND deprecated.deletionDate:*" \ --format="value(name)"
若只想处理自定义镜像(排除Google官方镜像),在过滤条件中加入
sourceType=CUSTOM即可,示例:gcloud compute images list \ --filter="status=DEPRECATED AND sourceType=CUSTOM" \ --format="value(name)"
批量删除筛选出的镜像
无需逐个手动操作,直接将筛选结果传入删除命令即可批量处理:
批量删除(务必先确认筛选结果再执行!)
gcloud compute images delete \ $(gcloud compute images list \ --filter="status=DEPRECATED AND sourceType=CUSTOM" \ --format="value(name)") \ --quiet
--quiet参数会跳过确认提示直接执行删除,使用前一定要单独运行筛选命令,确认列表内都是需要删除的镜像。
验证删除结果
删除完成后,再次执行筛选命令,确认目标镜像已被移除:
gcloud compute images list \ --filter="status=DEPRECATED AND sourceType=CUSTOM" \ --format="value(name)"
内容的提问来源于stack exchange,提问作者Pash Ebash
相关产品推荐
相关产品推荐

