调试 ARM 模板

Debug ARM template

我正在开发一个 ARM 模板,其中包含 API 的 API 管理资源,由 Azure API Management DevOps Resource Kit.

生成

A​​RM 模板超过 50,000 行,当我尝试部署它时,出现此错误: InvalidTemplate - Deployment template language expression evaluation failed: 'Unable to parse language expression ' ': expected token 'Identifier' and actual 'EndOfData'.'. Please see https://aka.ms/arm-template-expressions for usage details.

此错误不包含有关我的模板中错误位置的任何信息,并且文件太大,无法手动调试。

有没有一种工具可以让调试具有更精确信息的 ARM 模板? (特别是它可以给出错误发生的行)。

尝试 visual studio 代码的扩展:https://marketplace.visualstudio.com/items?itemName=msazurermtools.azurerm-vscode-tools

它将为您提供 ARM 模板的 Intellisense,然后您可能会发现错误。

您可以使用 azure 客户端语法验证 模板:

az group deployment validate 
    --resource-group <rg-name> 
    --template-file <arm-name>

或者如果您更喜欢 PowerShell:

Test-AzureRmResourceGroupDeployment
    -ResourceGroupName <rg-name>
    -TemplateFile <arm-name>

此外,在 VSCode(或其他 IDE,如 Rider)中,您可以下载 ARM 插件来轻松发现此类错误。

我发现微软自己提供的工具非常有用。 arm-ttk 是一个 powershell 脚本,用于检查您的 createUIDefinition.jsonmainTemplate.json。 唯一的缺点是它基于 powershell,如果您使用 linux,您首先必须安装 pwsh。 或者,您可以使用 docker 容器。