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

Azure VMSS自定义脚本扩展异常:无法删除或重执行的解决求助

解决VMSS自定义脚本扩展异常:旧URL缓存导致重复失败的问题

我之前碰到过一模一样的情况——你这问题核心是VMSS实例里残留了旧的扩展配置缓存,哪怕你删了扩展或者重新指定了正确URL,系统还是在沿用第一次失败时的错误地址。下面是一步步的解决办法:

1. 彻底清理VMSS层面的扩展配置

先从VMSS全局层面删除有问题的customScript扩展,再强制同步所有实例:

# 删除VMSS上的customScript扩展
az vmss extension delete --resource-group <你的资源组名称> --vmss-name <你的VMSS名称> --name customScript

# 强制所有实例同步更新操作,确保扩展被彻底移除
az vmss update-instances --resource-group <你的资源组名称> --name <你的VMSS名称> --instance-ids "*"

2. 手动清理VM实例本地的扩展残留(关键步骤)

有时候VM实例本地会留存旧的扩展配置和缓存文件,这时候需要登录到实例里手动清理:

  • 对于Linux实例,找到Custom Script Extension的本地存储目录:
    # 进入扩展目录
    cd /var/lib/azureextensions/customScript
    # 删除所有旧配置和文件
    sudo rm -rf *
    
  • 重启Azure代理服务,让实例刷新扩展状态:
    sudo systemctl restart waagent
    

3. 重新部署正确的自定义脚本扩展

用正确的Blob URL重新配置扩展,确保命令里的fileUris是有效的地址:

az vmss extension set \
  --resource-group <你的资源组名称> \
  --vmss-name <你的VMSS名称> \
  --name customScript \
  --publisher Microsoft.Azure.Extensions \
  --settings '{"fileUris": ["https://正确的存储账户名.blob.core.windows.net/script/deploytemp.sh"]}' \
  --protected-settings '{"commandToExecute": "sh deploytemp.sh"}'

部署完成后,再次同步所有实例:

az vmss update-instances --resource-group <你的资源组名称> --name <你的VMSS名称> --instance-ids "*"

故障排查小技巧

  • 检查扩展的当前配置是否正确:
    az vmss extension show --resource-group <你的资源组名称> --vmss-name <你的VMSS名称> --name customScript
    
  • 查看实例的扩展执行日志,确认问题是否解决:
    cat /var/log/azure/customScript/customScript.log
    

为什么会出现这个问题?

VMSS的Custom Script Extension在首次执行失败后,会在实例本地缓存配置信息。如果只是在VMSS层面删除/重新配置扩展,部分实例可能没及时同步,或者本地缓存的旧任务还在运行,导致重新部署时依然调用错误的URL。必须同时清理VMSS全局配置和实例本地缓存才能彻底解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:40:09