Azure 模板部署:"ContentLink cannot be null"是什么意思?



我正在使用JSON模板将一个资源组部署到Azure,该资源组由VM、网络、带有一些Runbook的自动化帐户等组成。

我收到以下错误,

New-AzureRmResourceGroupDeployment:49:23 PM-资源Microsoft.Automation/automationAccounts/runbooks"DeployAutomationName/AzureClassicAutomationTutorial"失败,返回消息'{"code":"BadRequest","message":"{\"Message \":\"指定的参数无效。参数contentLink不能为null\"}">

以及:

New-AzureRmResourceGroupDeployment:49:23 PM-资源Microsoft.Automation/automationAccounts/modules"DeployAutomationName/Microsoft.WWSMan.Management"失败,返回消息'{"code":"BadRequest","message":"{\"message \":\">必须在PUT或re-PUT操作中提供ContentLink属性\"}"}'

这两个错误在我的自动化帐户的各种不同的"资产"(我认为这是术语)中重复出现。对于modulesrunbookscertificatesconnections也是如此。

什么是contentLink,如何确保它不是Null?"ContentLink"应用程序在我的模板中找不到,除此之外,我在互联网上也找不到任何关于ContentLink到底是什么的解释。此外,我假设"PUT"或"re-PUT"是传递模板的其余API的一部分,并且我也不能直接控制这个过程描述我无法直接控制的问题的错误消息有什么用

这个问题与我成功排除Azure模板故障时遇到的许多困难同义:我收到的错误消息似乎描述了我不了解也无法访问的Azure内部。当我无法访问实际引发这些异常的代码,也无法解释此异常的含义时,我如何进行故障排除或调试?

谢谢!这是我的template,我只会复制相关的文本,但我不知道什么是相关,什么是不相关:

好的,所以在戳了一点之后,看起来您缺少了runbook内容(脚本本身)。所以你的runbook资源应该是这样的:

{
"type": "Microsoft.Automation/automationAccounts/runbooks",
"name": "[parameters('runbooks_AzureAutomationTutorial_name')]",
"apiVersion": "2015-10-31",
"location": "eastus2",
"properties": {
"runbookType": "GraphPowerShell",
"logVerbose": false,
"logProgress": false,
"publishContentLink": {
"uri": "[variables('scriptUri')]",
"version": "1.0.0.0"
}
},
"resources": [],
"dependsOn": [
"[resourceId('Microsoft.Automation/automationAccounts', parameters('automationAccounts_deployautomation_name_1'))]"
]
},

变量:

"variables": {
"scriptUri": "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-automation-runbook-getvms/Runbooks/Get-AzureVMTutorial.ps1",
},

我无法测试整个模板,因为我没有base64值,但我相信这应该可以解决您的问题。在这之后可能还会有另一个,你;)谁知道呢。

参考数据:https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-automation-runbook-getvms/azuredeploy.json

此外,您可以从模板中删除模块,因为它们不是必需的,它们都是默认的模块,但对它们来说,想法是一样的,您在部署模块时不提供模块数据。

而且您可能会到处缺少其他强制属性,看起来Automation Script还不能很好地与Azure Automation配合使用。你可能想求助于Powershell来提供自动化帐户,因为这非常好。

附言:我不知道图形runbook的内容是什么样子的。但我想,你可以把它导出并上传到github,它会起作用的。

最新更新