调用Azure Powershell新AzResource时出错:请求内容无效

调用Azure Powershell新AzResource时出错:请求内容无效,azure,azure-resource-manager,azure-powershell,Azure,Azure Resource Manager,Azure Powershell,调用新AzResource时,我遇到此Azure PowerShell错误: new azresource:InvalidRequestContent:请求内容无效,无法反序列化:“在“ResourceProxyDefinition”类型的对象上找不到成员“dependsOn”。路径“dependsOn” 我传递给New AzResource的-property参数的对象实际上是一个具有dependsOn属性的对象。所以这个信息是一个诱饵。当然,它在CLI中也可以正常工作 有趣的是,您甚至在Az

调用新AzResource时,我遇到此Azure PowerShell错误:

new azresource:InvalidRequestContent:请求内容无效,无法反序列化:“在“ResourceProxyDefinition”类型的对象上找不到成员“dependsOn”。路径“dependsOn”

我传递给New AzResource的-property参数的对象实际上是一个具有dependsOn属性的对象。所以这个信息是一个诱饵。当然,它在CLI中也可以正常工作

有趣的是,您甚至在Az PS模块()的任何代码中都找不到该消息或子字符串ResourceProxyDefinition。我已经研究到了我能想到的程度,比如查看底层Azure API和源代码。试试谷歌搜索ResourceProxyDefinition(没有空格),你会发现我劫持了一个GitHub问题

对于property对象,我从一个json模板开始(部分如下所示)。JSON直接在CLI中工作。但是,对于azure powershell模块,我对文件内容使用了
convertfromJSON
,并将结果对象作为参数传递

{
  "type": "Microsoft.VirtualMachineImages/imageTemplates",
  "apiVersion": "2019-05-01-preview",
  "location": "eastus2",
  "dependsOn": [],
  "tags": {
    "imagebuilderTemplate": "My.WindowsServer.2019-Datacenter-1910020354.tpl"
  },

  "properties": {
    "buildTimeoutInMinutes": 100,

    "source": {
      "type": "PlatformImage",
      "publisher": "MicrosoftWindowsServer",
      "offer": "WindowsServer",
      "sku": "2019-Datacenter",
      "version": "2019.0.20190603"
    },

对模板进行如下更改:

{
  "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
    "name": "My.WindowsServer.2019-Datacenter-1910030425.tpl",
    "type": "Microsoft.VirtualMachineImages/imageTemplates",
    "apiVersion": "2019-05-01-preview",
    "location": "eastus2",
    "dependsOn": [],
    "tags": {
      "imagebuilderTemplate": "My.WindowsServer.2019-Datacenter-1910030425.tpl"
    },

    "properties": {
      "buildTimeoutInMinutes": 100,
      "source": {
        "type": "PlatformImage",
        "publisher": "MicrosoftWindowsServer",
        "offer": "WindowsServer",
        "sku": "2019-Datacenter",
        "version": "2019.0.20190603"
这包括添加一个额外的级别(将以前的模板嵌套在“资源”下,并添加为部署设置的“$schema”和“contentVersion”)

现在,使用:

New-AzResourceGroupDeployment -ResourceGroupName $imageResourceGroup  `
    -TemplateFile $imageTemplateFile

这将在JSON文件中读取,并且有效!不要使用新的AzResource。

对模板进行一些更改,如下所示:

{
  "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
    "name": "My.WindowsServer.2019-Datacenter-1910030425.tpl",
    "type": "Microsoft.VirtualMachineImages/imageTemplates",
    "apiVersion": "2019-05-01-preview",
    "location": "eastus2",
    "dependsOn": [],
    "tags": {
      "imagebuilderTemplate": "My.WindowsServer.2019-Datacenter-1910030425.tpl"
    },

    "properties": {
      "buildTimeoutInMinutes": 100,
      "source": {
        "type": "PlatformImage",
        "publisher": "MicrosoftWindowsServer",
        "offer": "WindowsServer",
        "sku": "2019-Datacenter",
        "version": "2019.0.20190603"
这包括添加一个额外的级别(将以前的模板嵌套在“资源”下,并添加为部署设置的“$schema”和“contentVersion”)

现在,使用:

New-AzResourceGroupDeployment -ResourceGroupName $imageResourceGroup  `
    -TemplateFile $imageTemplateFile

这将在JSON文件中读取,并且有效!不要使用新AzResource。

尝试
新AzResourceGroupDeployment
,请参考@JoyWang的建议。我很难找到正确的模板来驱动Azure Image Builder。新AzResourceGroupDeployment还抱怨找不到东西。it应用程序ears可能与您提供给az CLI执行相同操作的模板不同。我在此处找不到任何相关示例:。而且,也没有文档。由于验证中的错误消息完全错误,因此在尝试和出错方面遇到了困难。请尝试
新建AzResourceGroupDeployment
,请参阅感谢@JoyWa的建议ng.我很难找到正确的模板来驱动Azure Image Builder。新AzResourceGroupDeployment还抱怨无法找到内容。它似乎与您提供给az CLI执行相同操作的模板不同。我在此处找不到任何相关示例:。并且,也没有文档。Having由于验证中的错误消息是错误的,因此尝试和错误都很困难。