如何使用 Terraform 更改 AWS 安全群組上的描述?

如何使用 Terraform 更改 AWS 安全群組上的描述?

我在以下 Terraform 場景中遇到了一些麻煩:

  • 建立 SG 並啟動使用 SG 的實例
  • 修改SG描述

我希望 Terraform 取消 SG 與實例的鏈接,銷毀 SG,創建一個新的,鏈接新的。

然而,我看到的是嘗試銷毀 SG 時超時(顯然,因為它正在使用中,而 AWS 不允許這樣做)。

我不確定這是一個錯誤還是我做錯了什麼。

若要了解我的問題,請按照下面的方式執行 apply,然後變更 SG 的描述,然後再次執行 apply。

provider "aws" {
  region = "eu-west-1"
}

resource "aws_default_vpc" "default" {
  tags {
    Name = "Default VPC"
  }
}

data "aws_subnet_ids" "example" {
  vpc_id = "${aws_default_vpc.default.id}"
}

resource "aws_security_group" "webserver" {
    name = "staging-webserver"
  description = "meow"

    egress {
        from_port = 0
    to_port = 0
        protocol = "-1"
        cidr_blocks = ["0.0.0.0/0"]
    }

  tags {
    Name = "EBS webserver SG - staging"
  }
}

resource "aws_instance" "dummy" {
  ami               = "ami-f7e8558e"
  instance_type     = "t2.micro"
  availability_zone = "eu-west-1a"
  vpc_security_group_ids = [
    "${aws_security_group.webserver.id}"
  ]
}

答案1

任何 Terraform 都不會在摧毀安全群組之前將其與任何東西解除連結。

您能做的最好的事情就是建立另一個安全群組並使用該安全性群組,然後刪除舊的安全性群組或忽略描述變更。

相關內容