使用REST API创建OS Azure托管磁盘

时间:2019-04-17 19:25:33

标签: rest azure azure-managed-disk

我正在尝试遵循this document来创建OS受管磁盘(Ubuntu 18.04)。但是,我找不到合适的主体示例来创建此类磁盘。我尝试发送此邮件:

PUT https://management.azure.com/subscriptions/mysubscription/resourceGroups/myresourcegroup/providers/Microsoft.Compute/disks/mydisk?api-version=2018-09-30
{
    "name": "mydisk",
    "location": "westus2",
    "properties": {
        "osType": "Linux",
         "diskSizeGB": 32,
         "creationData": {
            "createOption": "FromImage",
            "imageReference": {
                "id": "/subscriptions/mysubscription/Providers/Microsoft.Compute/Locations/westus2/Publishers/Microsoft/ArtifactTypes/VMImage/Offers/UbuntuServer"
            }
        }
    }
}

但我得到了答复:

{
    "error": {
        "code": "InvalidParameter",
        "message": "The value of parameter imageReference is invalid.",
        "target": "imageReference"
    }
}

是否有创建这种磁盘的方法?在我的示例中,订阅ID和资源组名称已被编辑。

我试图以这种方式创建此类磁盘,因为如果在VM创建过程中指定了该磁盘,它将为OS Managed Disk生成一些名称。然后,当我需要删除VM时,将很难确定要删除哪个OS受管磁盘。因此,我希望该磁盘具有指定的名称,而不是随机的名称。

1 个答案:

答案 0 :(得分:1)

如错误所示,参数imageReference的值无效。特殊图像将有许多版本。例如,UbuntuServer在Azure映像中有许多SKU。

创建VM时,可以使用CLI命令查看OS磁盘:

az disk show -g yourgroup -n yourdisk

您将看到imageReference,对于映像UbuntuLTS,其ID将如下所示:

/Subscriptions/yoursubscription/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/18.04-LTS/Versions/18.04.201903200

因此,您应该提供一个特殊的图像。不是UbuntuServer。