首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ARM模板部署不会删除旧管道

ARM模板部署不会删除旧管道

基础概念

ARM(Azure Resource Manager)模板是用于定义和部署Azure资源的JSON文件。它允许你一次性部署多个资源,并且可以版本控制和重复使用。ARM模板支持多种资源类型,包括虚拟机、存储账户、网络接口等。

相关优势

  1. 声明式语法:ARM模板使用声明式语法,只需描述所需的最终状态,而不需要编写复杂的脚本。
  2. 版本控制:由于是文本文件,可以轻松地进行版本控制和协作。
  3. 自动化部署:可以通过CI/CD管道自动化部署过程。
  4. 回滚能力:如果部署失败,可以轻松回滚到之前的状态。

类型

ARM模板主要有两种类型:

  1. 用户界面部署:通过Azure门户进行部署。
  2. 命令行部署:通过Azure CLI、PowerShell或REST API进行部署。

应用场景

ARM模板广泛应用于各种场景,包括但不限于:

  • 自动化部署复杂的应用架构。
  • 在开发、测试和生产环境之间保持一致性。
  • 实现基础设施即代码(IaC)。

问题:ARM模板部署不会删除旧管道

在ARM模板部署过程中,如果新资源已经定义,但旧资源没有被删除,通常是因为ARM模板没有配置为删除旧资源。ARM模板默认只会更新或添加新资源,而不会删除现有资源。

原因

  1. 资源依赖:某些资源可能依赖于其他资源,删除旧资源可能会导致依赖关系中断。
  2. 配置错误:ARM模板中没有正确配置删除旧资源的逻辑。

解决方法

为了确保旧资源在部署新资源时被删除,可以使用Microsoft.Resources/deployments资源类型中的mode属性。mode属性有两个值:

  • Incremental:默认值,只更新或添加新资源。
  • Complete:删除不在模板中的所有资源。

以下是一个示例ARM模板片段,展示了如何配置为Complete模式:

代码语言:txt
复制
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "mode": "Complete",
  "resources": [
    {
      "type": "Microsoft.Compute/virtualMachines",
      "apiVersion": "2020-12-01",
      "name": "[parameters('vmName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        // VM properties here
      }
    }
  ]
}

参考链接

通过配置mode属性为Complete,可以确保在部署新资源时删除旧资源,从而避免资源冗余和不一致的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券