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

Azure DevOps YAML配置PowerShell内联脚本报块映射解析错误

Azure DevOps YAML 内联PowerShell脚本解析错误修复

while parsing a block mapping did not find expected key报错由YAML结构不合法触发,原配置存在三类问题:

  • 缩进不符合YAML规范:YAML是强缩进敏感语法,inputs是任务参数的父节点,其下所有配置项(包括azureSubscription、ScriptType、Inline、preferredAzurePowerShellVersion)必须相对inputs缩进2-4个空格(全文件保持统一缩进规则即可)。原代码中这些参数和inputs处于同一缩进层级,直接触发键解析错误。
  • 脚本本身存在语法疏漏:原内联脚本中$var1 = "1!的双引号没有闭合,即使YAML解析通过,PowerShell执行阶段也会抛出语法错误。
  • 多行块标量缩进错误:使用|标记的多行文本块,内部所有内容必须相对Inline:行再缩进一级,不能和属性名齐平。

正确配置示例

- task: AzurePowerShell@5
  displayName: 'test inline script in yaml'
  inputs:
    azureSubscription: 'azuresubscriptionid'
    ScriptType: InlineScript
    Inline: |
      # Setting Variables
      $var1 = "1!"
      Write-Output $var1
    preferredAzurePowerShellVersion: 3.1.0

配置注意事项

  • 优先使用|标记多行内联脚本:这种块标量写法会原样保留脚本内容,脚本中包含:、#、{}、[]等YAML特殊字符时不需要额外转义,容错率远高于行内脚本写法。
  • 缩进统一用空格,不要混用Tab键:Azure DevOps的YAML解析器无法正确识别Tab缩进,混用会直接触发解析错误。
  • 如果不需要保留脚本末尾的空行,可以把|替换为|-,解析时会自动剔除文本块末尾的多余换行,避免不必要的执行干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 03:06:37