ARM模板应允许您回滚到声明的云状态。但是,让我们面对现实吧,模板本身对于将部署哪些资源还是很晦涩,因为它们通常很长,而且不是很可读。
潜在的问题是,尚不清楚指定的云环境包含什么和不包含什么。当人们开始在门户中单击时,声明的云基础设施和实际的云基础设施之间将存在不匹配。
问题是:在部署ARM模板时,是否有任何方法可以验证将修改或删除哪些资源?
const getText = (obj: Obj1 | Obj2): string => {
let property = "message"
if (property in obj) {
return obj.message
}
return obj.text
}
(或Powershell替代品),但这仅可以语法上验证模板。
我正在寻找的是az group deployment validate
式的东西。what-if
functionality处于预览状态。我们有什么保证,这也可以提供有关要删除的资源的准确信息?答案 0 :(得分:1)
正如您已经发现的,What-If是旨在满足这一需求的工具,它显示了将要使用的资源的列表:
..并允许您确认更改并在出现任何问题时取消。
ARM模板确实支持incremental deployment,使未脚本化的资源保持不变,并且假设预览功能也不会改变它。
是的,假设分析功能本身今天仍在预览中,几乎没有什么偏执。显然您对预览功能没有任何保证,但是..
首先,它是可选的。您仍然拥有ARM模板,而不必仅依赖于假设分析。您也不必强迫自己通过假设功能进行部署。您可以检查报告,但拒绝更改,仍然可以通过常规的GA级ARM工具集进行部署。没有桥被烧毁(如果您信任小的确认要求子功能)。
其次,您还是应该进行测试。通常,您知道在ARM中进行了哪些更改,并且在假设分析中会亮起那些相同的更改。而且您可以以很小的风险来验证对开发/分阶段环境所做的更改的正确性。您将尽早了解它是否可以在您的方案中使用。
被告知。 除了测试之外,您还可以调查已知的缺点和问题,并考虑是否对您的案例很重要。查看此仓库: https://github.com/Azure/arm-template-whatif
假设分析是一项非常有用的功能,而且看起来已经足够成熟,我希望大多数常见方案都能按预期工作。只要您进行测试,并且有可用的恢复计划,那么我就不会太担心。