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

如何在Azure Pipeline中获取失败插件任务的错误码并进行后续处理?

在Azure Pipeline中获取插件任务的返回码并执行后续操作

方法1:通过ContinueOnError结合日志解析捕获返回码

  1. 先给目标插件任务设置continueOnError: true,让流水线不会因该任务失败直接终止,保留后续执行的可能性。
  2. 添加一个脚本任务(PowerShell/Bash均可),通过解析流水线日志提取插件返回的错误码:
    • 示例Bash脚本(需根据插件实际日志格式调整匹配规则):
      # 假设插件日志中包含"Exit Code: XXX"格式的输出
      ERROR_CODE=$(grep -r "Exit Code: " $(Agent.WorkFolder)/_diag/ | awk '{print $NF}')
      # 将提取到的错误码设置为流水线变量
      echo "##vso[task.setvariable variable=PluginErrorCode;]$ERROR_CODE"
      

方法2:调用插件底层命令行工具直接捕获返回码

部分Azure插件对应有命令行工具,可绕过可视化任务直接调用:

  • 示例PowerShell脚本:
    # 调用插件对应的命令行指令
    & az specific-plugin-command --required-params ...
    # 获取命令执行的返回码
    $exitCode = $LASTEXITCODE
    Write-Host "##vso[task.setvariable variable=PluginExitCode;]$exitCode"
    # 按需决定是否标记任务失败
    if ($exitCode -ne 0) {
        Write-Host "##vso[task.logissue type=error;]任务执行失败,返回码: $exitCode"
        exit $exitCode
    }
    

方法3:基于错误特征关键词分支处理

若插件未明确输出返回码,但不同失败场景有独特的错误消息,可通过关键词匹配执行对应逻辑:

steps:
- task: AzurePluginTask@1
  name: TargetPlugin
  continueOnError: true
  inputs:
    # 插件配置参数
- task: PowerShell@2
  condition: failed() && contains(variables['TargetPlugin.ErrorMessage'], '权限不足')
  inputs:
    script: |
      # 针对权限错误的处理逻辑
- task: PowerShell@2
  condition: failed() && contains(variables['TargetPlugin.ErrorMessage'], '资源不存在')
  inputs:
    script: |
      # 针对资源不存在错误的处理逻辑

注:不同插件的日志输出格式差异较大,需先查看插件执行日志,确认错误码或特征关键词的具体格式后再调整解析逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:42:12