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

使用模板验证工具检查 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 文件。

注释

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

  1. 确保已连接到 Azure Stack Hub。 可以从 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 文件。 以下屏幕截图是验证报告的示例:

模板验证报告

参数

模板验证程序 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

后续步骤