ARM UI 和 ARM 模板测试

本文中的 "Azure 市场"作用范围均指中国大陆。

1. ARM UI 测试

本节我们将使用示例文件,演示如何测试 UI 界面。

1.1 先决条件

1.2 运行测试脚本

若要在 Azure 门户中查看界面文件,请运行已下载的脚本。 该脚本会在 Azure 订阅中创建一个存储帐户(如果存储账号已经存在,则不重新创建),并将 createUiDefinition.json 文件上传到该存储帐户,然后该脚本将打开 Azure 门户并从存储帐户加载文件。

执行脚本,参数中提供存储帐户的位置,以及 createUiDefinition.json 文件所在的文件夹。

方法一,使用 PowerShell,首先登录到 Azure,然后执行如下脚本:

.\SideLoad-CreateUIDefinitionChina.ps1 `
-StorageResourceGroupLocation chinanorth `
-ArtifactsStagingDirectory .\Marketplace-uisample

.\SideLoad-CreateUIDefinitionChina.ps1   //已创建了存储帐户,createUiDefinition.json和脚本位于同一目录

请注意,PowerShell 脚本如果不能执行,可能的原因是由于 Windows 安全隔离导致,可以在脚本文件的属性页中,选择 "unblock",将文件解锁,然后再执行。

方法二,使用 Azure CLI,首先登录到 Azure,然后执行如下脚本:

./sideload-createuidef.sh -l chinanorth -a .\Marketplace-uisample

./sideload-createuidef.sh  //已创建了存储帐户,createUiDefinition.json和脚本位于同一目录

1.3 查看测试界面

脚本会在浏览器中打开新选项卡,浏览器中会显示门户,其中包含用于创建托管应用程序的界面,如下图所示。

在填写字段值之前,请在浏览器中打开"Web 开发人员工具", "控制台"显示有关界面的重要消息(Microsoft Edge中F12)。如果界面定义有错误,控制台中会显示说明。

在门户中填写字段值,完成后,会看到这些值已传递到模板,如下图所示,请将这些参数保存成参数文件例如 exampletemplate.parameters.json,在章节 4 中你可以使用这个参数文件来进行模板部署的测试。

1.4 排查界面问题

你可能看到的一些常见错误如下:

  • 门户无法加载界面, 而是显示了一个带有泪滴的云图标。 通常,当文件中有语法错误时,你会看到此图标。 在 VS Code(或其他具有架构验证的 JSON 编辑器)中打开该文件,并查找语法错误。
  • 门户在摘要屏幕上挂起。 通常,当输出部分中存在 bug 时,会发生这种中断。 例如,你可能引用了不存在的控件。
  • 输出中的参数为空。 该参数可能引用了不存在的属性。 例如,对控件的引用有效,但属性引用无效。

2. 集成测试 ARM 模板和 UI 文件 createuidefination

方法一:请将 1.3 节中的模板参数拷贝成参数文件进行测试

此方法相对简单。此方法用 ARM 模板文件和 createuidefination 测试生成参数文件,作为参数进行模板部署,通过测试参数是否正确验证 createuidefination 的正确性。假设模板文件为 exampletemplate.json,参数文件为 exampletemplate.parameters.json,则在PowerShell下:

New-AzureRmResourceGroup -Name ExampleResourceGroup -Location "China North"

New-AzureRmResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\MyTemplates\exampletemplate.json `
-TemplateParameterFile c:\MyTemplates\exampletemplate.parameters.json

或者

Test-AzureRmResourceGroupDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\MyTemplates\exampletemplate.parameters.json `
-storageAccountType Standard_GRS

具体请参考 使用 PowerShell 部署 ARM 模板 中的 "参数文件" 或 "测试模板部署" 部分。

方法二:集成 createUiDefinition 文件与 ARM 模板文件

确认 Azure 门户界面按预期方式工作后,可以验证 createUiDefinition 文件是否能够正常地与模板文件 mainTemplate.json 文件相集成。 可以运行验证脚本来测试模板文件的内容,包括 createUiDefinition.json 文件。 该脚本会验证 JSON 语法,检查文本字段中的正则表达式,并确保门户界面的输出值与模板参数相匹配。 有关运行此脚本的信息,请参阅对模板运行静态验证检查

后续步骤

反馈