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

Azure Machine Learning Bicep模板计算资源命名段长度报错排查

报错根因

这个段长度报错和计算资源名称后缀无关,核心是违反了Bicep的资源命名段匹配规则:

  • 去掉API版本部分后,资源类型按/拆分得到的段数,和资源名称按/拆分的段数必须满足固定关系:根级资源的名称段数 = 类型段数 - 1;嵌套在父资源内的子资源,名称段数和类型的子层级段数一致。
    你定义的计算资源类型为Microsoft.MachineLearningServices/workspaces/computes,去掉API版本后按/拆分共3段,作为根级资源部署时需要名称有2段(用/分隔),但你写的计算资源名称是无分隔符的单段字符串,不管删不删cluster后缀,段数始终为1,自然持续触发报错。
修复方案

两类资源保留在同一文件中有两种合法写法,任选其一即可。

  • 写法1:计算资源作为工作区的嵌套子资源(推荐):直接把计算资源块写在工作区资源声明内部,此时计算资源名称只需要写单段的集群名,不需要带工作区前缀,Bicep会自动识别父子依赖关系,不需要手动配置dependsOn。
  • 写法2:保留根级资源声明,修正名称格式:如果不想嵌套结构,只需要把计算资源名称改为父工作区名称/计算集群名称的两段式格式,再显式添加对工作区的依赖保证部署顺序即可。
修正后可直接部署的模板代码(写法2,改动最小)
resource machineLearning 'Microsoft.MachineLearningServices/workspaces@2022-01-01-preview' = {
  name: 'mlw-${project}-${env}'
  location: loc
  tags: tags
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    applicationInsights: appInsights.id
    containerRegistry: containerRegistry.id
    keyVault: keyVaultId
    storageAccount: storage.id
  }
}

resource amlci 'Microsoft.MachineLearningServices/workspaces/computes@2022-01-01-preview' = {
  name: '${machineLearning.name}/aml-cluster'
  location: loc
  dependsOn: [
    machineLearning
  ]
  properties: {
    computeType: 'AmlCompute'
    properties: {
      vmSize: 'Standard_DS3_v2'
      subnet: json('null')
      osType: 'Linux'
      scaleSettings: {
        maxNodeCount: 5
        minNodeCount: 0
      }
    }
  }
}

可选优化:上述代码把计算资源的API版本统一到了和工作区一致的2022-01-01-preview,避免旧版本API的兼容问题,不属于强制修复项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 07:09:17