在 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

后续步骤