我尝试使用PowerShell创建Ubuntu DSVM。我已确定发布商microsoft-ads
在商品linux-data-science-vm-ubuntu
和SKU linuxdsvmubuntu
下发布了Ubuntu DSVM映像。我收集到,在PowerShell中指定我的VM配置时,我需要使用Set-AzureRmVMPlan
和Set-AzureRmVMSourceImage
,并尝试了以下操作:
$vmConfig = New-AzureRmVMConfig -VMName $vmName -VMSize Standard_D4s_v3
$vmConfig = Set-AzureRmVMPlan -VM $vmConfig -Name "linuxdsvmubuntu" -Product "linux-data-science-vm-ubuntu" -Publisher "microsoft-ads"
$vmConfig = Set-AzureRmVMOperatingSystem -VM $vmConfig -Linux -ComputerName $vmName -Credential $cred
$vmConfig = Set-AzureRmVMSourceImage -VM $vmConfig -PublisherName "microsoft-ads" -Offer "linux-data-science-vm-ubuntu" -Skus "linuxdsvmubuntu" -Version latest
$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $nic.Id
New-AzureRmVM -ResourceGroupName $rgName -Location $location -VM $vmConfig
不幸的是,我从New-AzureRmVM
命令收到错误消息:
New-AzureRmVM : This resource was created without a plan. A new plan cannot be associated with an update.
ErrorCode: CannotSetPlanOnUpdate
ErrorMessage: This resource was created without a plan. A new plan cannot be associated with an update.
StatusCode: 400
ReasonPhrase: Bad Request
OperationID : 648c62cd-4029-408e-8b6c-2ae4310001f6
At line:1 char:1
+ New-AzureRmVM -ResourceGroupName $rgName -Location $location -VM $vmC ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [New-AzureRmVM], ComputeCloudException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Compute.NewAzureVMCommand
似乎我可能没有正确使用Set-AzureRmVMPlan
。任何人都清楚我做错了什么?
答案 0 :(得分:2)
我发现问题不在于此命令本身,但显然是从早期版本的命令部署失败。
我第一次尝试使用.DataBodyRange.NumberFormat = "_(* #,##0.00_);_(* (#,##0.00);_(* "-" ??_);_(@_)"
时,我不知道我还需要使用Set-AzureRmVMSourceImage
。这导致部署失败,我认为这意味着部署的VM将从我的资源组中删除(或者从不首先添加到我的资源组中)。
实际发生的事情是,失败的部署使VM处于状态"失败"在我的资源组中。当我稍后运行上面显示的命令时,Set-AzureRmVMPlan
命令被视为更新步骤而不是全新的VM创建。这就是为什么错误消息表明,"此资源是在没有计划的情况下创建的。"
删除所有内容并重新开始,导致上述命令成功。