【问题标题】:Azure ARM Template is caching the Custom script fileAzure ARM 模板正在缓存自定义脚本文件
【发布时间】:2026-01-10 01:30:01
【问题描述】:

我们正在开发一个 Azure ARM 模板,该模板正在使用自定义脚本扩展创建 VM 并在启动时运行 Bashscript。它有一段时间运行良好,但突然开始缓存 SH 文件。我添加了一些以错误结尾的命令,因此我删除了它们,但仍然遇到相同的错误。我尝试从 URI 中删除 SH 文件,但错误仍然存​​在。

我添加到自定义脚本的命令仅用于创建目录(mkdir)。

有人在 Azure 上看到过类似的东西吗??

【问题讨论】:

  • 能否请您出示您的模板和错误信息?
  • 啊!!!我忘了删除我的虚拟机,当我用我的 ARM 模板尝试它时,它只是向我显示已经创建的错误虚拟机的日志。这在 Azure 部分不是很好。
  • 它应该显示正确的错误

标签: azure


【解决方案1】:

是的,它不是缓存它的模板,而是它的扩展。您需要在重试之前从 VM 中删除扩展名,或者在模板中使用 ForceUpdateTag`。

文档here.

ForceUpdateTag:
指定应使用相同的公共或受保护设置再次运行扩展。该值可以是不同于当前值的任何字符串。如果 forceUpdateTag 未更改,则处理程序仍会应用对公共或受保护设置的更新。

ps。 Azure Powershell DSC 扩展具有相同的行为。

【讨论】:

  • 它没有缓存它。实际上,当我的脚本出错时,我更正了它,然后重新部署并忘记删除我的虚拟机。 Azure 没有给我关于尝试创建现有 VM 的错误,而是向我显示了旧的错误日志。会为此提出一张票。
  • 这对你有很大的误解。这不是 ARM 模板的工作方式。它向您显示“旧”错误,因为它再次运行相同的扩展名
  • 你能再解释一下吗。我是新手
  • 嗯,评论有点过分了。我已经解释了为什么您会遇到“旧”错误,如果您不了解 ARM 模板(这些模板的声明性),您应该阅读这些
  • *.com/questions/37723567/… 找到了这个谢谢