我们的团队正在使用使用多个ARM模板的部署来设置环境。第一个ARM模板设置为部署模式“完成”,并删除所有内容,但删除存储帐户。我们正在使用Azure CLI进行部署:
az group deployment create \
--mode Incremental \
--resource-group $resourceGroupName \
--template-file $BUILD_SOURCESDIRECTORY'/Infrastructure/azuredeploy.json' \
--parameters $BUILD_SOURCESDIRECTORY'/Infrastructure/azuredeploy.parameters.'$environment'.json' \
--query $query \
--output json
但是,我们的资源组之一包含一些锁定的资源(由另一个团队管理)。在那种特殊情况下,具有“完全”部署模式的策略将失败,因为Azure无法删除锁定的资源。
当然可以理解,但是也许有办法解决?例如,我们可以指示ARM模板忽略特定资源吗?还是使用CLI指示类似内容?
最明显的方法是将资源移到一个单独的资源组中,但是不幸的是,这对我们来说不是可能性。我找不到其他方法,但也许我错过了一些东西。感谢您提前提出任何答案。
答案 0 :(得分:0)
解决此问题的另一种方法是将资源移至单独的资源组(无论如何,您还是拒绝将资源组移到单独的资源组中),将条件与资源一起使用。
请注意,在complete模式下,资源管理器删除资源组中存在但模板中未指定的资源。模板中指定但由于condition评估为false而不被部署的资源不会被删除。
有关语法和示例的更多详细信息,请参考以下资源:
希望这会有所帮助!