使用 Terraform 忽略特定 ASG 标签

问题描述 投票:0回答:1

我正在使用 terraform 创建 ASG 资源,并使用最新语法添加标签,例如


    tag {
      key                 = "external-sync"
      value               = "false"
      propagate_at_launch = true
    }

    tag {
      key                 = "test"
      value               = "false"
      propagate_at_launch = true
    }

我需要能够忽略“external-sync”标签在初始创建后的任何更改,因为另一个工具正在与 AWS 中的该标签交互。

我似乎无法在我的忽略块中获得正确的语法。

我尝试过 tag["external-sync] 但它引发了验证错误。

“块类型‘标签’由一组对象表示,集合元素没有可寻址的键。要查找匹配特定条件的元素,请使用“for”表达式和“if”子句”

For 循环语法在ignore_change = [] 块中不起作用

我似乎找不到一种方法来完成这项工作。任何指点,非常感谢。

我正在使用最新版本的 terraform 和 AWS 提供商。

amazon-web-services terraform terraform-provider-aws tagging
1个回答
0
投票

您需要添加此“生命周期”块,并在“生命周期”块中添加“ignore_changes”块,其中将包含您想要忽略的所有内容。

这是一个如何在特定资源上忽略此标签“external-sync”的示例

resource "aws_autoscaling_group" "example" {
  availability_zones = ["us-east-1a"]
  desired_capacity   = 1
  max_size           = 1
  min_size           = 1
  .
  .
  .
  tag {
  key                 = "external-sync"
  value               = "false"   
  propagate_at_launch = true
  }

  lifecycle {
    ignore_changes = [
      tags["external-sync"]
    ]
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.