使用Bicep创建Azure ML数据资产版本时遇到问题
Azure ML数据资产版本部署错误排查与解决
首次创建数据资产版本时部署成功,但后续执行相同部署脚本时触发以下错误:
同名同版本的数据版本已存在。若要创建新的数据版本,请使用不同的名称或版本号。若要更新现有数据版本,请注意资产的data URI无法修改,仅能更新标签、描述、是否归档这类属性。(错误码:UserError)
说明:未对目标版本的任何内容做修改,当前使用的Bicep代码片段如下:
resource dataAssetVersion 'Microsoft.MachineLearningServices/workspaces/data/versions@2023-04-01' = { parent: data name: dataAssetversion properties: { dataType: 'uri_folder' isAnonymous: false dataUri: 'azureml://datastores/${datastore.name}/paths/csv' description: 'random description' isArchived: false } }
问题原因
Azure ML的数据资产版本属于不可变资源:
- 一旦创建,
name(版本标识)、dataUri、dataType这类核心属性无法修改 - 重复部署同名同版本的资源时,Azure会判定为尝试创建重复版本,而非更新现有资源——哪怕你没有修改任何内容
解决方案
1. 创建新的数据版本
修改代码中name字段的值,使用全新的版本名称/编号,例如:
name: 'dataAssetversion-v2' // 替换为新的版本标识
2. 更新现有数据版本
如果需要更新已存在的版本,需满足两个条件:
- 保持
name字段为已存在的版本名 - 仅修改允许更新的属性(
description、isArchived等),绝对不能改动dataUri、dataType这类核心属性
示例修改:
properties: { dataType: 'uri_folder' // 必须与原版本一致,不可修改 isAnonymous: false // 不可修改 dataUri: 'azureml://datastores/${datastore.name}/paths/csv' // 必须与原版本一致,不可修改 description: 'updated description' // 仅允许修改这类属性 isArchived: true // 仅允许修改这类属性 }
3. 检查部署模式
确保使用增量部署模式(Bicep默认模式),避免完整模式下的资源冲突问题。
内容的提问来源于stack exchange,提问作者Aram Yako
相关产品推荐
相关产品推荐

