我对以下 Terraform 场景有点困惑:
- 创建 SG 并启动使用该 SG 的实例
- 修改SG描述
我希望 Terraform 取消 SG 与实例的链接,销毁该 SG,创建一个新的 SG,然后链接该新的 SG。
但是,我看到的是尝试销毁 SG 时超时(显然,因为它正在使用中并且 AWS 不允许这样做)。
我不确定这是一个错误还是我做错了什么。
为了了解我的问题,请按照下面的操作运行应用,然后更改 SG 的描述,然后再次运行应用。
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 不会取消其与任何事物的链接。
您能做的最好的事情就是创建另一个安全组并使用该安全组,然后删除旧安全组或忽略描述的更改。