Terraform配置CloudWatch告警如何忽略metric_query下嵌套dimensions变更
解决方案
你可以通过Terraform的splat通配符表达式精准匹配所有metric_query嵌套块下的dimensions字段,无需忽略整个metric_query块,修改后的lifecycle配置如下:
lifecycle { ignore_changes = [ metric_query[*].metric[*].dimensions ] }
规则说明
metric_query[*]:匹配当前资源下所有的metric_query嵌套块metric[*]:匹配每个metric_query下的所有metric嵌套块(每个metric_query最多有1个metric块,也可以写成metric[0]限制只取第一个)- 该配置只会忽略所有
dimensions字段的变更,如果你修改metric_query下的其他属性(比如expression、stat、period等),Terraform仍然会正常检测到变更并执行更新,完全符合你只忽略动态修改的维度配置的需求。 - 如果你需要单独忽略特定
metric_query的dimensions,也可以按索引指定,比如只忽略m1和m2对应的两个query:
注意lifecycle { ignore_changes = [ metric_query[1].metric[0].dimensions, metric_query[2].metric[0].dimensions ] }metric_query的索引从0开始计数,你配置中的三个metric_query块,索引0对应id为e1的表达式块,索引1对应id为m1的写IO指标块,索引2对应id为m2的读IO指标块。
内容的提问来源于stack exchange,提问作者user275560
相关产品推荐
相关产品推荐

