您好,我尝试使用Azure RM REST API创建VM,但是它给出以下错误代码

"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作为订阅。

最佳答案

如果您在请求中包含计划信息,则可能会发生这种情况。通过添加它,它迫使系统购买不存在的东西。
可以使用以下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的虚拟机,则可以在脚本中使用以下方法:
  • 获取图像的最新版本号:

    $ AzureImageSku = Get-AzureRmVMImage-位置westeurope -PublisherName“MicrosoftWindowsServer”`
    -提供“WindowsServer” -Skus“2016-Datacenter”
    $ AzureImageSku = $ AzureImageSku |排序对象版本-降序#首先输入最新的
    $ AzureImageSku [0]#Newest2016-Datacenter
  • 使用Get-AzureRmImage cmdlet
  • 检查是否需要计划
  • 仅在需要计划时,才使用此处详细介绍的方法来设置计划信息:https://docs.microsoft.com/en-us/azure/virtual-machines/windows/cli-ps-findimage#deploy-an-image-with-marketplace-terms
  • 关于azure - 通过Azure RM REST API创建VM时ResourcePurchaseValidationFailed,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37828508/

    10-13 05:45