Azure 从现有托管磁盘创建 VM:“从 Marketplace 映像创建虚拟机需要请求中的计划信息。”

Azure 从现有托管磁盘创建 VM:“从 Marketplace 映像创建虚拟机需要请求中的计划信息。”

按照一些将 VM 从一个 vnet 迁移到另一个 vnet 的说明,这些特定说明表示删除保留 OS 驱动器的 VM 并从磁盘启动 VM。

原始虚拟机是使用托管磁盘从 Canonical 16.4 LTS 市场映像(Canonical:UbuntuServer:16.04-LTS:latest)启动的。

这似乎很好,但 UI 中的部署失败并出现错误:

“错误”:{“代码”:“ResourceDeploymentFailure”,“消息”:“资源操作已完成,终端配置状态为‘失败’。”,“详细信息”:[{“代码”:“VMMarketplaceInvalidInput”,“消息”:“从 Marketplace 映像创建虚拟机需要请求中的计划信息。操作系统磁盘名称为‘plesk1-disk’。”} ]

运行 CLI

az vm create --name $virtualMachineName --resource-group $resourceGroupName --attach-os-disk $managedDiskId --os-type $osType

尝试提供计划信息时出现同样的错误,

az vm create --name $virtualMachineName --resource-group $resourceGroupName --attach-os-disk $managedDiskId --os-type $osType --image $imageName --plan-publisher $planPublisher --plan-name $planName --plan-product $planProduct

此资源是在没有计划的情况下创建的。新计划无法与更新关联。

这是有道理的,因为计划细节是根据图像的属性制定的。将图像列为 JSON 会显示“plan: null”,这与后一个错误相匹配。

az vm image show --urn Canonical:UbuntuServer:16.04-LTS:latest   --output json

{“additionalProperties”:{},“dataDiskImages”:[],“id”:“/Subscriptions/2692407a-01e0-42cf-a874-fdb3bc8f6332/Providers/Microsoft.Compute/Locations/westus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/16.04-LTS/Versions/16.04.201804050”,“location”:“westus”,“name”:“16.04.201804050”,“osDiskImage”:{“additionalProperties”:{},“operatingSystem”:“Linux”},“plan”:null,“tags”:null}

因此,创建 VM 命令请求提供计划信息,但市场图像本身没有计划,因此提供任何正确的计划详细信息都会出现错误。

是否有人能够解决这个问题,并使用 UI、CLI 和/或任何其他方法从没有计划的市场映像磁盘创建虚拟机?

我在网上找到的唯一成功的讨论和结果是图像确实有一个计划并且命令az vm image show提供了所需的信息,但在这种情况下它为空并且我找不到将计划传递为空的方法。

相关内容