
我在以下 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 都不會在摧毀安全群組之前將其與任何東西解除連結。
您能做的最好的事情就是建立另一個安全群組並使用該安全性群組,然後刪除舊的安全性群組或忽略描述變更。