在 Azure Stack Hub 中使用模板验证工具

使用模板验证工具检查 Azure 资源管理器模板。 该工具检查模板是否已准备好部署到 Azure Stack Hub。 可以从 Azure Stack Hub 工具 GitHub 存储库获取验证工具。

注意

该工具验证 Azure 资源管理器模板在 Azure Stack 中支持的资源类型和 API 版本。 但是,该工具不会验证每种资源类型支持的属性。

概述

若要验证模板,必须先生成云功能文件,然后运行验证工具。 通过 Azure Stack Hub 工具使用以下 PowerShell 模块:

  • CloudCapabilities 文件夹中:Az.CloudCapabilities.psm1 会创建云功能 JSON 文件,该文件表示 Azure Stack Hub 云中的服务和版本。
  • TemplateValidator 文件夹中:Az.TemplateValidator.psm1 使用云功能 JSON 文件来测试要在 Azure Stack Hub 中部署的模板。

生成云功能文件

使用模板验证程序之前,先运行 Az.CloudCapabilities PowerShell 模块以生成 JSON 文件。

注意

如果更新集成系统,或添加任何新服务或虚拟扩展,应重新运行该模块。

  1. 请确保已连接到 Azure Stack Hub。 这些步骤可从 Azure Stack 开发工具包 (ASDK) 主机执行,也可以使用 VPN 从工作站连接。

  2. 导入 Az.CloudCapabilities PowerShell 模块:

    Import-Module .\CloudCapabilities\Az.CloudCapabilities.psm1
    
  3. 使用 Get-CloudCapabilities cmdlet 检索服务版本,并创建云功能 JSON 文件。 如果未指定 -OutputPath,则将在当前目录中创建文件 AzureCloudCapabilities.json。 使用你的实际 Azure 位置:

Get-AzCloudCapability -Location <your location> -Verbose

验证模板

按照这些步骤,使用 Az.TemplateValidator PowerShell 模块验证模板。 可以使用自己的模板,或使用 Azure Stack Hub 快速入门模板

  1. 导入 Az.TemplateValidator.psm1 PowerShell 模块:

    cd "c:\AzureStack-Tools-az\TemplateValidator"
    Import-Module .\Az.TemplateValidator.psm1
    
  2. 运行模板验证程序:

Test-AzTemplate -TemplatePath <path to template.json or template folder> `
-CapabilitiesPath <path to cloudcapabilities.json> `
-Verbose

验证程序在 PowerShell 控制台中显示模板验证警告或错误,并将其写入源目录中的 HTML 文件。 以下屏幕截图是验证报告的一个示例:

Template validation report

参数

模板验证程序 cmdlet 支持以下参数。

参数 说明 必须
TemplatePath 指定要在其中递归查找 Azure 资源管理器模板的路径。
TemplatePattern 指定要匹配的模板文件的名称。
CapabilitiesPath 指定云功能 JSON 文件的路径。
IncludeComputeCapabilities 包括 IaaS 资源(例如 VM 大小和 VM 扩展)的评估。
IncludeStorageCapabilities 包括存储资源(例如 SKU 类型)的评估。
Report 指定生成的 HTML 报告的名称。
Verbose 将错误和警告记录到控制台。

示例

此示例验证下载到本地存储的所有 Azure Stack Hub 快速入门模板。 此示例还根据 ASDK 功能验证虚拟机 (VM) 大小和扩展。

test-AzTemplate -TemplatePath C:\AzureStack-Quickstart-Templates `
-CapabilitiesPath .\TemplateValidator\AzureStackCloudCapabilities_with_AddOns_20170627.json `
-TemplatePattern MyStandardTemplateName.json `
-IncludeComputeCapabilities `
-Report TemplateReport.html

后续步骤