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

Azure自定义任务能否实现输入条件必填(适配YAML管道)

Azure自定义任务实现条件必填输入(YAML管道)

直接在task.json里给required属性设置动态表达式(比如你示例里的"boolInput = true")是不支持的,得通过以下两种方式实现YAML管道下的条件必填逻辑:

方法一:任务执行脚本内校验

在自定义任务的执行脚本(PowerShell/Node.js等)里添加逻辑,判断boolInput为true时,检查stringInput是否为空,为空则抛出错误终止任务。

PowerShell脚本示例

param(
    [bool]$boolInput,
    [string]$stringInput
)

if ($boolInput -and [string]::IsNullOrEmpty($stringInput)) {
    Write-Error "当boolInput为true时,stringInput为必填项,请填写该输入"
    exit 1
}

# 后续任务逻辑...

Node.js脚本示例

const boolInput = process.env.input_boolInput === 'true';
const stringInput = process.env.input_stringInput;

if (boolInput && !stringInput) {
    console.error("当boolInput为true时,stringInput为必填项,请填写该输入");
    process.exit(1);
}

// 后续任务逻辑...

方法二:YAML管道层面的条件控制

通过管道参数或条件分支,在YAML中控制是否需要提供stringInput。

示例:用管道参数配合条件输入

parameters:
  - name: requireStringInput
    type: boolean
    default: true
    displayName: "是否需要填写stringInput"

jobs:
  - job: TestJob
    steps:
      - task: 你的自定义任务ID@1
        inputs:
          boolInput: ${{ parameters.requireStringInput }}
          ${{ if eq(parameters.requireStringInput, true) }}:
            stringInput: "" # 这里必须填写有效值,否则YAML校验会报错

这种方式下,当参数requireStringInput设为true时,YAML会强制要求填写stringInput;设为false时则可以忽略该输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 03:16:57