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

Bicep文件中部署后Bash脚本无法执行的问题求助

问题修正方案

你的Bicep脚本存在几个关键问题,导致部署后脚本无法正确执行,以下是修正后的代码及说明:

修正后的Run Command资源代码

resource deploymentscript 'Microsoft.Compute/virtualMachines/runCommands@2022-08-01' = {
  parent: virtualMachine
  name: 'postDeploymentPSInstall'
  location: location
  properties: {
    commandId: 'RunShellScript' // 指定执行Bash脚本的命令ID
    source: {
      script: '''sudo apt-get update &&
      sudo apt-get install -y wget apt-transport-https software-properties-common &&
      wget -q "https://packages.microsoft.com/config/ubuntu/\\$(lsb_release -rs)/packages-microsoft-prod.deb" &&
      sudo dpkg -i packages-microsoft-prod.deb &&
      sudo apt-get update &&
      sudo apt-get install -y powershell &&
      pwsh'''
    }
  }
}

关键修改说明

  • 移除HTML转义字符:原代码中的&&和"是HTML转义格式,在Bicep字符串中需直接使用&&和双引号"。
  • 转义Shell变量表达式:$(lsb_release -rs)是Shell命令,在Bicep的多行字符串中需要添加额外的反斜杠\\$,避免Bicep将其解析为自身的表达式语法。
  • 添加commandId参数:必须指定RunShellScript作为命令ID,明确告知Azure执行的是Bash脚本(默认可能会误用PowerShell命令ID,导致脚本执行失败)。
  • 优化换行格式:Bicep的多行字符串(三个单引号包裹)支持直接换行,无需保留\换行符,若保留也可正常工作,但直接换行可读性更好。

额外验证建议

部署完成后,可通过以下方式验证PowerShell是否安装成功:

  • 登录VM后执行pwsh命令,检查是否能进入PowerShell环境。
  • 在Azure门户的VM资源中,查看运行命令的执行日志,确认脚本无报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:41:30