如何通过“完成”模式部署到Azure来忽略锁定的资源?

时间:2019-05-22 14:37:30

标签: azure arm-template azure-cli

我们的团队正在使用使用多个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指示类似内容?

最明显的方法是将资源移到一个单独的资源组中,但是不幸的是,这对我们来说不是可能性。我找不到其他方法,但也许我错过了一些东西。感谢您提前提出任何答案。

1 个答案:

答案 0 :(得分:0)

解决此问题的另一种方法是将资源移至单独的资源组(无论如何,您还是拒绝将资源组移到单独的资源组中),将条件与资源一起使用。

请注意,在complete模式下,资源管理器删除资源组中存在但模板中未指定的资源。模板中指定但由于condition评估为false而不被部署的资源不会被删除。

有关语法和示例的更多详细信息,请参考以下资源:

希望这会有所帮助!