如何通过ADF管道在Batch作业下创建并运行自定义任务
ADF 向现有Azure Batch作业新增执行任务实操方案
前置检查(先做这步避免踩坑)
- 确认ADF工作区已经添加了指向
demo-batch-account的Batch类型链接服务,认证用账户密钥或者系统托管标识都可以,确保ADF身份有该Batch账户的任务提交、作业查询权限 - 确认现有作业
TEST_JOB确实挂载在DemoTestPool池上,且TestTool.zip应用包已经关联到DemoTestPool,包版本为1——你写的执行命令里引用的是TestTool#1,版本号不匹配的话运行时会直接报找不到文件 - 确认
DemoTestPool的节点操作系统是Windows,你写的cmd命令只能在Windows节点上跑,Linux节点要改对应shell命令和路径变量
管道配置步骤
- 新建ADF管道,从活动库找到「Azure Batch」分类下的创建任务活动,拖到编辑画布
- 常规 tab 随便填个好识别的活动名,比如
Run_TestTool_On_Batch - 切到「Azure Batch」tab,下拉选你提前配好的指向
demo-batch-account的链接服务 - 切到「设置」tab,按以下规则填参数:
- 作业ID:固定填
TEST_JOB,不要勾选「新建作业」选项,直接用你已经创建好的现有作业 - 任务ID:填唯一值就行,建议拼上时间戳避免重名报错,比如
TestTool_Exec_@formatDateTime(utcNow(),'yyyyMMddHHmmss') - 命令行:直接填你的执行命令
cmd /c %AZ_BATCH_APP_PACKAGE_TestTool#1%\TestTool.exe - 其余参数(资源文件、输出文件、任务超时、重试策略、运行用户身份)按需配置即可,你的场景不需要额外传资源文件——池绑定的应用包会在节点启动/任务运行前自动解压,
AZ_BATCH_APP_PACKAGE_TestTool#1这个环境变量Batch会自动注入,不需要手动设置
- 作业ID:固定填
- 默认配置下这个活动会等Batch任务跑完、拿到最终执行状态才会结束,如果你需要提交完任务就直接走后续管道流程,在设置页勾选「触发任务后不等待完成」即可
常见问题排查
- 如果任务运行报找不到TestTool.exe,先去池的配置页看应用包关联的版本是不是1,再去节点上远程看对应环境变量的路径下有没有解压好的exe文件
- 不要在任务的资源文件里重复上传TestTool.zip,会干扰池级应用包的路径映射,反而导致环境变量失效
- 如果报exe执行权限不足,去任务的「用户标识」配置里选择池管理员权限运行即可
- 提交后可以直接去Azure Batch门户的
TEST_JOB作业详情页看任务状态、拉取stdout/stderr日志,排查执行问题比在ADF里看报错更直接
内容的提问来源于stack exchange,提问作者cgsabari
相关产品推荐
相关产品推荐

