You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GCE Windows实例关机脚本中判断实例是否被删除?

GCE Windows实例关机脚本区分删除与普通关机的方法

当GCE Windows实例被删除时,系统会在元数据服务器中自动添加instance/deletion-timestamp属性,普通关机或重启场景下该属性不存在。利用这一点可以在关机脚本中区分两种场景:

  • PowerShell实现代码:

    # 查询元数据中的删除时间戳
    $deletionTimestamp = Invoke-RestMethod -Uri "http://metadata.google.internal/computeMetadata/v1/instance/deletion-timestamp" -Headers @{"Metadata-Flavor" = "Google"} -ErrorAction SilentlyContinue
    
    if ($deletionTimestamp) {
        # 实例正在被删除,执行专属逻辑
        Write-Host "执行实例删除专属处理逻辑..."
        # 此处添加你的删除场景代码
    } else {
        # 普通关机/重启,执行原有逻辑
        Write-Host "执行普通关机/重启处理逻辑..."
        # 此处添加你的常规关机代码
    }
    
  • 注意事项:

    • 访问元数据API必须携带Metadata-Flavor: Google请求头,否则会返回权限错误。
    • GCE实例默认允许内部进程访问元数据服务器,无需额外配置权限。
    • 若需区分抢占式实例被抢占的场景,可查询instance/preempted属性(值为TRUE表示被抢占)。

内容的提问来源于stack exchange,提问作者Mike Frank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 12:39:54