使用模板验证工具检查 Azure 资源管理器模板 。 该工具检查模板是否已准备好部署到 Azure Stack Hub。 可以从 Azure Stack Hub 工具 GitHub 存储库获取验证工具。
注释
该工具验证 Azure Stack 中受支持的资源类型和 API 版本的 Azure 资源管理器模板。 但是,该工具不会验证每种资源类型支持的属性。
概述
要验证模板,必须先生成云功能文件,然后运行验证工具。 使用 Azure Stack Hub 工具中的以下 PowerShell 模块:
- 在 CloudCapabilities 文件夹中: Az.CloudCapabilities.psm1 创建表示 Azure Stack Hub 云中的服务和版本的云功能 JSON 文件。
- 在 TemplateValidator 文件夹中: Az.TemplateValidator.psm1 使用云功能 JSON 文件测试模板以在 Azure Stack Hub 中部署。
生成云功能文件
在使用模板验证程序之前,请运行 Az.CloudCapabilities PowerShell 模块以生成 JSON 文件。
注释
如果更新集成系统或添加任何新服务或虚拟扩展,则应再次运行此模块。
- 确保已连接到 Azure Stack Hub。 可以从 VPN 执行这些步骤,以便从工作站进行连接。 
- 导入 Az.CloudCapabilities PowerShell 模块: - Import-Module .\CloudCapabilities\Az.CloudCapabilities.psm1
- 使用 - Get-CloudCapabilitiescmdlet 检索服务版本并创建云功能 JSON 文件。 如果未指定- -OutputPath,则会在当前目录中创建 文件AzureCloudCapabilities.json 。 使用您实际的 Azure 位置:- Get-AzCloudCapability -Location <your location> -Verbose
验证模板
使用以下步骤通过 Az.TemplateValidator PowerShell 模块验证模板。 可以使用自己的模板,也可以使用 Azure Stack Hub 快速入门模板。
- 导入 Az.TemplateValidator.psm1 PowerShell 模块: - cd "c:\AzureStack-Tools-az\TemplateValidator" Import-Module .\Az.TemplateValidator.psm1
- 运行模板验证程序: - Test-AzTemplate -TemplatePath <path to template.json or template folder> ` -CapabilitiesPath <path to cloudcapabilities.json> ` -Verbose
验证程序在 PowerShell 控制台中显示模板验证警告或错误,并将其写入源目录中的 HTML 文件。 以下屏幕截图是验证报告的示例:
               
              
            
参数
模板验证程序 cmdlet 支持以下参数。
| 参数 | DESCRIPTION | 必选 | 
|---|---|---|
| TemplatePath | 指定以递归方式查找 Azure 资源管理器模板的路径。 | 是的 | 
| TemplatePattern | 指定要匹配的模板文件的名称。 | 否 | 
| CapabilitiesPath | 指定云功能 JSON 文件的路径。 | 是的 | 
| IncludeComputeCapabilities | 包括对 IaaS 资源的评估,例如 VM 大小和 VM 扩展。 | 否 | 
| IncludeStorageCapabilities | 包括存储资源的评估,例如 SKU 类型。 | 否 | 
| Report | 指定生成的 HTML 报表的名称。 | 否 | 
| Verbose | 将错误和警告记录到控制台。 | 否 | 
例子
此示例验证下载到本地存储的所有 Azure Stack Hub 快速入门模板 。
test-AzTemplate -TemplatePath C:\AzureStack-Quickstart-Templates `
-CapabilitiesPath .\TemplateValidator\AzureStackCloudCapabilities_with_AddOns_20170627.json `
-TemplatePattern MyStandardTemplateName.json `
-IncludeComputeCapabilities `
-Report TemplateReport.html