Azure Rest API 附加一个现有的托管磁盘

Azure Rest API attach an existing managed disk

使用逻辑应用程序,从 HTTP 请求操作调用 Azure Rest API,我正在尝试创建一个托管磁盘(从快照),然后将磁盘附加到现有 VM。 我可以从创建的快照中获取磁盘——这很简单。但是,我无法正确调用尝试附加磁盘的 Rest API。

我有一个这样的 PUT 请求: https://management.azure.com/subscriptions/xxxxx-xxxx-cxxxxxfxxxx-xxxxxx/resourceGroups/rgname/providers/Microsoft.Compute/virtualMachines/vm-test?api-version=2020-06-30

和 JSON body 像: { “数据磁盘”:{ “缓存”:“None”, "createOption": "附加", “伦”:6, “托管磁盘”:{ "id": "/subscriptions/xxxxx-xxxx-cxxxxxfxxxx-xxxxxx/resourceGroups/rgname/providers/Microsoft.Compute/disks/disk-12345-november", “storageAccountType”:“Standard_LRS” } } }

这是有效的 JSON。来自 Azure 的错误是“bad reqeust”

{ “错误”: { “代码”:“资源读取失败”, “目标”:“vm-test”, “消息”:“策略需要完整的资源内容来评估请求。获取资源 'https://management.azure.com/subscriptions/xxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxx/resourceGroups/rg-name/providers/Microsoft.Compute/virtualMachines/vm-test?api-version=2020-06-30' 的请求失败,状态为 'BadRequest'。” } }

您使用的 REST API 是正确的,但您需要使用更完整的主体,如下所示:

{
  "properties": {
      "storageProfile": {
        "dataDisks": [
            {
                "createOption": "Attach",
                "lun": 1,
                "managedDisk": {
                    "id": "xxxxx"
                }
            }
        ]
    }
  }
}