Azure DevOps部署ARM模板时大量资源标记为Ignored的问题咨询
问题
我正在使用Azure DevOps Pipeline部署Azure Monitoring中的Alerts和Workbooks ARM模板,采用订阅范围部署。但每次运行管道时,都会列出大量状态为ignored的资源,这些资源不会被修改,但每次都会被提及。我不理解它们为何会被列出,也担心未来这些资源若被修改会破坏整个基础设施,尤其困惑像diskEncryptionSets、sshPublicKeys和privateDnsZones这类和Alerts、Workbooks看似无关的资源为何会出现在列表里。
以下是部署计划内容:
Resource and property changes are indicated with these symbols: = Nochange * Ignore The deployment will update the following scope: Scope: /subscriptions/***/resourceGroups/*** = microsoft.insights/metricalerts/*** * Microsoft.Compute/diskEncryptionSets/*** * Microsoft.Compute/sshPublicKeys/*** * Microsoft.ContainerService/managedClusters/*** * Microsoft.Insights/scheduledqueryrules/*** * Microsoft.ManagedIdentity/userAssignedIdentities/*** * Microsoft.Network/privateDnsZones/*** * Microsoft.Network/privateDnsZones/***/virtualNetworkLinks/*** * Microsoft.Network/privateDnsZones/***/virtualNetworkLinks/*** * Microsoft.OperationalInsights/workspaces/*** * Microsoft.OperationsManagement/solutions/ContainerInsights(**) * microsoft.insights/metricalerts/*** ... * microsoft.insights/scheduledqueryrules/*** * microsoft.insights/scheduledqueryrules/*** * microsoft.insights/workbooks/*** * microsoft.insights/workbooks/*** Resource changes: 1 no change, 21 to ignore. Finishing: ARM deployment plan
解答
为什么会出现这些ignored资源?
- 订阅范围部署的默认扫描逻辑:当以订阅为范围部署ARM模板时,Azure会自动枚举该订阅下所有资源组的现有资源,再与模板内定义的资源做对比。那些不在模板里的资源都会被标记为
ignored,这只是部署引擎在告知“这些资源不在我的操作范围内”,和你的Alerts/Workbooks不一定有直接关联。 - 部分资源的间接关联:像OperationalInsights工作区、ContainerInsights解决方案这类资源,确实和Monitoring服务存在间接依赖(比如Alert规则需要读取工作区数据),但diskEncryptionSets、sshPublicKeys这类完全无关的资源被列出,本质是订阅级部署的扫描机制导致的,并非和你的部署内容有依赖。
- 部署模式的影响:即便使用
Incremental部署模式(绝大多数场景的默认选择),订阅范围部署依然会遍历订阅内所有资源来确认保留逻辑,这也是ignored资源出现的原因。
解决方法
- 缩小部署范围到目标资源组:如果你的Alerts和Workbooks都集中在某个资源组,把部署范围从订阅级改成资源组级,这样Azure只会扫描该资源组内的资源,不会枚举整个订阅的无关资源。
- 在模板中明确资源的
scope属性:如果必须保留订阅范围部署,给模板里的每个Alerts/Workbooks资源添加scope属性,限定到目标资源组,部署引擎只会关注这些指定范围内的资源,减少无关资源的扫描输出。 - 无需担心
ignored资源的影响:ignored状态明确表示这些资源不会被当前部署操作修改,未来修改这些资源也不会破坏你的Monitoring基础设施。你可以在Azure DevOps Pipeline的部署任务中调整日志级别,过滤掉这类无关输出。
内容的提问来源于stack exchange,提问作者Mia Mois
相关产品推荐
相关产品推荐

