调用Azure Powershell新AzResource时出错:请求内容无效
调用新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模块,我对文件内容使用了调用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
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由于验证中的错误消息是错误的,因此尝试和错误都很困难。