资源 [parameters('mgName')] Location 必须是表达式或 'global'
Resource [parameters('mgName')] Location must be an expression or 'global'
我正在试验 Azure 管理组 Arm 模板。
正如你在这个 link 中看到的,我有这个 Arm 模板:
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mgName": {
"type": "string",
"defaultValue": "[concat('mg-', uniqueString(newGuid()))]"
}
},
"resources": [
{
"type": "Microsoft.Management/managementGroups",
"apiVersion": "2021-04-01",
"name": "[parameters('mgName')]",
"scope": "/",
"location": "eastus",
"properties": {}
}
],
"outputs": {
"output": {
"type": "string",
"value": "[parameters('mgName')]"
}
}
}
另存为mg.json
,效果很好。
稍后我开始尝试使用 Test-AzTemplate
(https://github.com/Azure/arm-ttk) 验证和测试 Arm 模板。当我 运行 以下命令测试 Arm 模板时:
Test-AzTemplate -TemplatePath .\mg.json
我得到这个测试错误:
[-] Resources Should Have Location (3 ms)
Resource [parameters('mgName')] Location must be an expression or 'global'
现在当我移除"location": "eastus",
行表单Arm模板时,测试没有失败并通过了测试。
我的问题:
Management Group Arm 中的这个位置是否需要?以及为什么当它是 Microsoft 文档的一部分时它会失败!有什么想法吗?
管理组中不需要 位置。正如您可以查看此 Azure Create Management Group REST API documentation,此处不需要位置。
这就是为什么在模板中您可以删除位置或提供 'global' 作为值,正如测试命令输出指定的那样。
我正在试验 Azure 管理组 Arm 模板。
正如你在这个 link 中看到的,我有这个 Arm 模板:
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mgName": {
"type": "string",
"defaultValue": "[concat('mg-', uniqueString(newGuid()))]"
}
},
"resources": [
{
"type": "Microsoft.Management/managementGroups",
"apiVersion": "2021-04-01",
"name": "[parameters('mgName')]",
"scope": "/",
"location": "eastus",
"properties": {}
}
],
"outputs": {
"output": {
"type": "string",
"value": "[parameters('mgName')]"
}
}
}
另存为mg.json
,效果很好。
稍后我开始尝试使用 Test-AzTemplate
(https://github.com/Azure/arm-ttk) 验证和测试 Arm 模板。当我 运行 以下命令测试 Arm 模板时:
Test-AzTemplate -TemplatePath .\mg.json
我得到这个测试错误:
[-] Resources Should Have Location (3 ms)
Resource [parameters('mgName')] Location must be an expression or 'global'
现在当我移除"location": "eastus",
行表单Arm模板时,测试没有失败并通过了测试。
我的问题:
Management Group Arm 中的这个位置是否需要?以及为什么当它是 Microsoft 文档的一部分时它会失败!有什么想法吗?
位置。正如您可以查看此 Azure Create Management Group REST API documentation,此处不需要位置。
这就是为什么在模板中您可以删除位置或提供 'global' 作为值,正如测试命令输出指定的那样。