如何将Azure Pipeline前置作业结果转JSON布尔值,合并Azure Function调用任务
你可以直接通过Azure DevOps的运行时表达式预定义布尔变量,直接合并为单个任务,不需要额外的处理步骤:
第一步:新增布尔变量计算部署状态
在job_B的变量段新增deploymentFailed变量,直接通过表达式判断前序作业的结果是否为失败,表达式会直接返回原生布尔值:
variables: jobAResult: $[dependencies.job_${{parameters.jobA}}.result] deploymentFailed: $[eq(variables['jobAResult'], 'Failed')]
第二步:合并为单个AzureFunction任务
删掉原来的两个条件任务,只保留一个通用任务,在请求体中直接引用上面定义的布尔变量即可,不需要额外做类型转换。
完整修改后的job_B配置示例
- job: job_B dependsOn: job_${{parameters.jobA}} variables: jobAResult: $[dependencies.job_${{parameters.jobA}}.result] deploymentFailed: $[eq(variables['jobAResult'], 'Failed')] condition: in(variables['jobAResult'], 'Succeeded', 'SucceededWithIssues', 'Failed') pool: server steps: - task: AzureFunction@1 displayName: 调用Azure Function inputs: function: "<azure-function-url>" key: "<azure-function-key>" method: 'POST' waitForCompletion: false headers: | { "Content-Type": "application/json" } body: | { "CorrelationId": "${{parameters.correlationId}}", "DeploymentFailed": $(deploymentFailed) }
这种方案完全符合你的需求:
- 前序作业结果为
Succeeded/SucceededWithIssues时,deploymentFailed值为false - 前序作业结果为
Failed时,deploymentFailed值为true - 原生布尔值直接填入JSON体,不会被转义为字符串,符合接口字段要求
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

