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

如何通过ADF管道自动创建Azure Batch Service池?

解决ADF Web活动创建Azure Batch池的授权问题

核心问题定位

你混淆了Azure Resource Manager (ARM) API和Batch Service REST API的端点与授权规则:

  • 当前调用的是ARM API(management.azure.com),但误用了Batch Service API的Basic Auth授权方式,ARM API不支持Basic Auth;
  • 使用托管身份时提示“资源不存在”,大概率是因为资源参数填写错误(ARM API的资源应为https://management.azure.com/,而非Batch服务的资源)。

方案1:使用系统分配托管身份(推荐)

1. 配置权限

在Azure Portal中给ADF的系统分配托管身份授予Batch账户的池写入权限:

  • 进入目标Batch账户 → 访问控制(IAM) → 添加角色分配;
  • 角色选择「参与者」(或更细粒度的Microsoft.Batch/batchAccounts/pools/write权限);
  • 主体选择你的ADF实例名称(系统分配托管身份)。

2. 修正Web活动配置

  • URL:保留当前的ARM API URL:
    https://management.azure.com/subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Batch/batchAccounts/{Azure Batch Account Name}/pools?api-version=2023-05-01
    
  • 方法:POST
  • 认证:选择「系统分配托管身份」,资源填写https://management.azure.com/
  • 请求体:当前的请求体符合ARM API要求,可直接保留(注意id需符合Batch池命名规则)
  • 请求头:仅保留Content-Type: application/json即可,无需手动添加Authorization头(托管身份会自动处理)

方案2:调用Batch Service API(用Basic Auth)

如果想使用Basic Auth,需切换到Batch服务原生API:

1. 修改API端点

将URL替换为Batch服务的专用端点:

https://{Batch Account Name}.batch.azure.com/pools?api-version=2023-05-01

2. 配置授权头

保留原有的Authorization头:

Authorization: Basic @{base64(concat('{Batch Account Name}', ':', '{Batch Account Primary Key}'))}

3. 请求体

当前的请求体基本符合Batch Service API格式,可直接使用。


为什么之前的配置失败?

  • Basic Auth无效:ARM API仅支持Azure AD颁发的Bearer Token,不支持Batch账户的Basic Auth;
  • 托管身份报错:GET/DELETE请求可能巧合使用了正确的资源参数,而POST时资源填错为Batch服务的地址(如https://batch.azure.com/),导致身份验证失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:53:09