使用Terraform复制Azure Windows VM数据盘失败求助
Azure Terraform VM复制:数据盘报错150153(无效磁盘ID)
问题
使用Terraform配置Azure Windows VM复制时,OS盘复制正常,但数据盘始终无法完成复制,多次尝试均返回相同错误,已确认配置值无误,仅数据盘复制存在问题。
报错信息
│ Error: updating replicated vm vm-replication (vault example-recovery-vault): polling after Update: polling failed: the Azure API returned the following error: │ │ Status: “150153” │ Code: “” │ Message: “Could not update the properties of the virtual machine ‘example-machine’ because of following invalid disk Ids: ‘/subscriptions/******************************
相关代码配置
managed_disk { disk_id = “/subscriptions/******************************" staging_storage_account_id = azurerm_storage_account.primary.id target_resource_group_id = azurerm_resource_group.secondary.id target_disk_type = “Premium_LRS” target_replica_disk_type = “Premium_LRS” }
排查与解决方案
1. 修正代码中的全角引号问题
代码中使用了中文全角引号“”,这会导致Terraform无法正确解析磁盘ID等参数,必须替换为英文半角引号"":
managed_disk { disk_id = "/subscriptions/你的订阅ID/resourceGroups/磁盘资源组/providers/Microsoft.Compute/disks/数据盘名称" staging_storage_account_id = azurerm_storage_account.primary.id target_resource_group_id = azurerm_resource_group.secondary.id target_disk_type = "Premium_LRS" target_replica_disk_type = "Premium_LRS" }
2. 验证磁盘ID完整性
报错中的磁盘ID明显被截断,确认disk_id是完整的托管磁盘资源ID,格式必须为:
/subscriptions/{订阅ID}/resourceGroups/{磁盘所在资源组}/providers/Microsoft.Compute/disks/{数据盘名称}
可通过Azure门户或az disk show --name 磁盘名 --resource-group 资源组 -o tsv --query id命令获取正确的磁盘ID。
3. 检查磁盘权限与状态
- 确保恢复服务Vault的服务主体对数据盘拥有
Microsoft.Compute/disks/read权限,可通过Azure门户的磁盘IAM设置添加权限。 - 确认数据盘处于可用或已附加状态,无锁定、删除等异常情况,且为托管磁盘(
managed_disk块不支持非托管磁盘)。
4. 刷新Terraform状态
执行以下命令刷新本地状态,确保Terraform与Azure资源状态同步:
terraform refresh
若状态存在不一致,可尝试移除相关复制资源后重新应用:
terraform state rm azurerm_site_recovery_replicated_vm.vm-replication terraform apply
内容的提问来源于stack exchange,提问作者Md Mustafa Javeed
相关产品推荐
相关产品推荐

