通过Azure RM REST API创建VM时出现ResourcePurchaseValidationFailed错误

3

您好,我正在尝试使用Azure RM REST APIs创建虚拟机,但它给出了以下错误代码

"error": {
    "code": "ResourcePurchaseValidationFailed",
    "message": "User failed validation to purchase resources. Error message: 'Offer with PublisherId: Microsoft and OfferId: Windows Server 2008 R2 SP1 not found in Azure Data Market. If this offer has been created recently, please allow upto 30 minutes for this offer to be available for Purchase.'"
  }
}

有人曾经遇到过这种问题吗?

据我了解,这与Azure数据市场中的PublisherId和OfferId有关。请帮助我如何从Azure数据市场获取我的订阅的PublisherId和OfferId。


在请求体中进行了一些更改后,它对我起作用了。实际上,我从请求体中删除了那部分内容。 - Vicky
1个回答

1
如果您在请求中包含计划信息,可能会发生这种情况。通过添加此信息,它会强制系统购买不存在的东西。可以使用以下PowerShell命令进行验证:
$pubName = 'MicrosoftWindowsServer'
$offerName = 'WindowsServer'
$skuName = '2016-Datacenter'
$version = '2016.127.20180315'


Get-AzureRMVMImage -Location westeurope -Publisher $pubName -Offer $offerName -Skus $skuName -Version $version

正如您所看到的,输出显示通过PurchasePlan属性不需要计划信息:
Id               : /Subscriptions/5e747971-92b4-41ac-963a-188c55951695/Providers/Microsoft.Compute/Locations/westeurope/Publishers/MicrosoftWindowsServer/ArtifactTypes/V
                   MImage/Offers/WindowsServer/Skus/2016-Datacenter/Versions/2016.127.20180315
Location         : westeurope
PublisherName    : MicrosoftWindowsServer
Offer            : WindowsServer
Skus             : 2016-Datacenter
Version          : 2016.127.20180315
FilterExpression :
Name             : 2016.127.20180315
OSDiskImage      : {
                     "operatingSystem": "Windows"
                   }
PurchasePlan     : null
DataDiskImages   : []

如果您想让脚本部署可能需要或不需要类似于PurchasePlan的VM,则可以在脚本中使用以下方法:
1. 获取镜像的最新版本号: $AzureImageSku = Get-AzureRmVMImage -Location westeurope -PublisherName "MicrosoftWindowsServer" ` -Offer "WindowsServer" -Skus "2016-Datacenter" $AzureImageSku = $AzureImageSku | Sort-Object Version -Descending #将最新的放在前面 $AzureImageSku[0] #Newest2016-Datacenter 2. 使用Get-AzureRmImage cmdlet检查是否需要计划。
3. 仅在需要计划时,使用此处详细说明的方法设置计划信息:https://learn.microsoft.com/en-us/azure/virtual-machines/windows/cli-ps-findimage#deploy-an-image-with-marketplace-terms

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接