Azure Pipelines中如何将无代理作业关口输出值传递到代理作业
Azure Pipelines无代理作业输出值传递到代理作业操作方案
操作步骤
- 第一步:将ServiceNow关口输出注册为无代理作业的全局输出变量
进入包含ServiceNow关口的无代理作业配置页,在作业的输出变量区域新增映射,将你需要用到的ServiceNow任务输出字段绑定到作业级变量,示例映射值格式为$[dependencies.<关口作业名称>.outputs['<ServiceNow任务名称>.<输出字段名>']]。微软官方ServiceNow创建工单插件的常用输出字段包括workItemId(工单ID)、workItemNumber(工单编号)、status(工单状态),你可以根据需求选择对应的字段。 - 第二步:配置代理作业的依赖与变量引用
首先将代理作业的依赖项设置为上述无代理作业,再在代理作业的变量配置中新增变量,值的格式为$[dependencies.<无代理作业名称>.outputs['<你上一步定义的作业级变量名>']],配置完成后该变量即可在代理作业的所有任务中直接调用。
YAML配置示例
jobs: # 包含ServiceNow关口的无代理作业 - job: Agentless_SNOW_Job pool: server steps: - task: ServiceNowCreateWorkItem@1 name: CreateSNOWTicket inputs: serviceNowConnection: '你的ServiceNow服务连接名称' shortDescription: '流水线部署申请工单' # 其余ServiceNow插件配置参数略 # 注册作业级输出变量 outputs: snowTicketId: $[dependencies.Agentless_SNOW_Job.outputs['CreateSNOWTicket.workItemId']] # 后续代理作业 - job: Agent_Deployment_Job dependsOn: Agentless_SNOW_Job variables: # 引用无代理作业的输出变量 SNOW_TICKET_ID: $[dependencies.Agentless_SNOW_Job.outputs['snowTicketId']] pool: vmImage: 'ubuntu-latest' steps: - script: echo "获取到的ServiceNow工单ID为 $(SNOW_TICKET_ID)" displayName: 打印ServiceNow工单信息
经典编辑器操作说明
- 无代理作业侧:在作业设置的「输出变量」板块按上述规则添加变量映射即可。
- 代理作业侧:先在作业的「依赖项」设置中勾选对应的无代理作业,再在变量区域用
$(<无代理作业名>.<输出变量名>)格式引用即可。
注意事项
- 跨作业读取输出变量必须使用依赖项语法,不能直接用任务级变量的引用方式。
- 如果你不确定当前版本ServiceNow插件的输出字段名,可以先在无代理作业中添加调试步骤打印完整输出,确认字段名后再配置映射。
内容的提问来源于stack exchange,提问作者mmuso
相关产品推荐
相关产品推荐

