npm 包 @microsoft.azure/classic-openapi-arm-validator 使用教程

阅读时长 5 分钟读完

在进行云计算开发的过程中,经常需要对 Azure 资源管理器(ARM)模板进行验证,以确保模板的正确性和可用性。而 npm 包 @microsoft.azure/classic-openapi-arm-validator 就是一种可以方便地进行 ARM 模板验证的工具。在本文中,我们将讨论如何使用该工具以及一些常见问题的解决方法。

安装 npm 包 @microsoft.azure/classic-openapi-arm-validator

使用 npm 安装该包非常简单,只需在命令行中输入以下命令即可:

使用 npm 包 @microsoft.azure/classic-openapi-arm-validator 进行验证

在安装完成后,即可使用该工具进行 ARM 模板的验证。只需将待验证的 ARM 模板文件(JSON 或 YAML 格式)作为参数传递给该工具,即可得到验证结果和具体错误信息。

以下是一个简单的例子,在命令行中输入以下命令:

其中,input.json 是待验证的 ARM 模板文件名。输出的结果将包括一些基本信息和详细的验证错误信息。例如:

以上提示的含义是:在 ARM 模板文件中,第1个资源的 Application Insights 延伸配置项中的 instrumentationKey 属性值为空。换言之,该 ARM 模板无法使用,需要进行修改。

使用 npm 包 @microsoft.azure/classic-openapi-arm-validator 进行验证的高级用法

通过参数修改验证模式

有些情况下,需要使用特定的验证模式来针对某个具体的场景进行验证。

可通过 --mode= 参数来指定验证模式。modes 内置有三种预定义模式:None、Validation 和 Linter。

例如,以下命令将使用验证模式为 Validation:

自定义规则集合

通过在 ARM 模板文件中添加 $schema 时,可以自定义规则集合。规则集合是一种自定义验证规则的方式,能够提高验证的精确度和灵活性。

例如,在 ARM 模板文件中添加以下代码,即可添加规则集合:

其中,validationProfile 属性是规则集合的名称,也就是说,我们可以为该 ARM 模板文件添加一个名为 profile-2019-03-01 的规则集合。

自定义规则集合的使用

启用自定义规则集合的方式和启用预定义规则相同,只需将规则集合的名称作为参数传递给 az-validator 命令。

例如,以下命令将使用名为 profile-2019-03-01 的规则集合:

持续集成

如果你是一名开发者或者在团队中负责开发 ARM 模板,很有可能需要将验证步骤集成到 CICD 流程中。为了实现这个目标,可以使用包管理器来确保共享的待验证代码库可用于各个环境。

为了达到这个目的,需要在每个代码库中添加以下两个文件:

  1. package.json:用于描述项目的元数据和依赖项。
  2. validation.config.json:用于指定验证模式和规则集合。

对于 package.json,需要添加以下代码:

-- -------------------- ---- -------
-
  ------- -------------
  ---------- --------
  -------------- --- ------- ----- -------- ------- ---------- ----------
  ---------- -
    ----------- ------------- ---------------
  --
  --------------- -
    ------------------------------------------------- --------
    ----------- ---------
  -
-

对于 validation.config.json,需要添加以下代码:

以上配置将允许运行 npm run validate 命令,在执行时调用 az-validator 并使用配置文件 validation.config.json 中的规则集合和验证模式进行验证。

结论

在本文中,我们讨论了如何使用 npm 包 @microsoft.azure/classic-openapi-arm-validator 进行 ARM 模板的验证。首先,我们学习了如何安装该 npm 包,然后详细介绍了如何使用它以及一些常见问题的解决方法,并结合实例代码进行了演示。最后,我们还讨论了如何将该工具集成到 CICD 流程中,以实现持续集成和部署的目标。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bcc967216659e244777

纠错
反馈