在进行云计算开发的过程中,经常需要对 Azure 资源管理器(ARM)模板进行验证,以确保模板的正确性和可用性。而 npm 包 @microsoft.azure/classic-openapi-arm-validator 就是一种可以方便地进行 ARM 模板验证的工具。在本文中,我们将讨论如何使用该工具以及一些常见问题的解决方法。
安装 npm 包 @microsoft.azure/classic-openapi-arm-validator
使用 npm 安装该包非常简单,只需在命令行中输入以下命令即可:
npm install -g @microsoft.azure/classic-openapi-arm-validator
使用 npm 包 @microsoft.azure/classic-openapi-arm-validator 进行验证
在安装完成后,即可使用该工具进行 ARM 模板的验证。只需将待验证的 ARM 模板文件(JSON 或 YAML 格式)作为参数传递给该工具,即可得到验证结果和具体错误信息。
以下是一个简单的例子,在命令行中输入以下命令:
az-validator input.json
其中,input.json 是待验证的 ARM 模板文件名。输出的结果将包括一些基本信息和详细的验证错误信息。例如:
1 error(s) found /resources/0/extensions/ApplicationInsights_configuration/settings/instrumentationKey : A null or empty value was found where a non-null or non-empty value is required.
以上提示的含义是:在 ARM 模板文件中,第1个资源的 Application Insights 延伸配置项中的 instrumentationKey 属性值为空。换言之,该 ARM 模板无法使用,需要进行修改。
使用 npm 包 @microsoft.azure/classic-openapi-arm-validator 进行验证的高级用法
通过参数修改验证模式
有些情况下,需要使用特定的验证模式来针对某个具体的场景进行验证。
可通过 --mode=
参数来指定验证模式。modes 内置有三种预定义模式:None、Validation 和 Linter。
例如,以下命令将使用验证模式为 Validation:
az-validator --mode=Validation input.json
自定义规则集合
通过在 ARM 模板文件中添加 $schema 时,可以自定义规则集合。规则集合是一种自定义验证规则的方式,能够提高验证的精确度和灵活性。
例如,在 ARM 模板文件中添加以下代码,即可添加规则集合:
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "validationProfile": "profile-2019-03-01",
其中,validationProfile 属性是规则集合的名称,也就是说,我们可以为该 ARM 模板文件添加一个名为 profile-2019-03-01 的规则集合。
自定义规则集合的使用
启用自定义规则集合的方式和启用预定义规则相同,只需将规则集合的名称作为参数传递给 az-validator 命令。
例如,以下命令将使用名为 profile-2019-03-01 的规则集合:
az-validator --ruleSet=profile-2019-03-01 input.json
持续集成
如果你是一名开发者或者在团队中负责开发 ARM 模板,很有可能需要将验证步骤集成到 CICD 流程中。为了实现这个目标,可以使用包管理器来确保共享的待验证代码库可用于各个环境。
为了达到这个目的,需要在每个代码库中添加以下两个文件:
package.json
:用于描述项目的元数据和依赖项。validation.config.json
:用于指定验证模式和规则集合。
对于 package.json,需要添加以下代码:
-- -------------------- ---- ------- - ------- ------------- ---------- -------- -------------- --- ------- ----- -------- ------- ---------- ---------- ---------- - ----------- ------------- --------------- -- --------------- - ------------------------------------------------- -------- ----------- --------- - -
对于 validation.config.json,需要添加以下代码:
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "validationProfile": "profile-2019-03-01", }
以上配置将允许运行 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