【发布时间】:2020-02-03 00:34:25
【问题描述】:
我是 Terraform 的新手,所以我确定我遗漏了一些东西,但我找到的答案似乎与我提出的问题不同。
我有一个 AWS VPC/安全组,我们需要在该组下创建我们的 EC2 实例,并且该 VPC/SG 已经创建。要创建 EC2 实例,Terraform 要求如果我没有默认 VPC,我必须导入我自己的。但是一旦我导入并应用我的计划,当我想销毁它时,它也试图销毁我的 VPC。如何封装我的资源,以便当我运行“terraform apply”时,我可以使用我导入的 VPC 创建一个 EC2 实例,但当我运行“terraform destroy”时,我只销毁我的 EC2 实例?
如果有人想提及,我明白:
lifecycle = {
prevent_destroy = true
}
不是我要找的。p>
这是我目前的练习代码。
resource "aws_vpc" "my_vpc" {
cidr_block = "xx.xx.xx.xx/24"
}
provider "aws" {
region = "us-west-2"
}
data "aws_ami" "ubuntu" {
most_recent = true
filter {
name = "name"
values = ["ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-*"]
}
owners = ["099720109477"] # Canonical
}
resource "aws_instance" "web" {
ami = "${data.aws_ami.ubuntu.id}"
instance_type = "t3.nano"
vpc_security_group_ids = ["sg-0e27d851dxxxxxxxxxx"]
subnet_id = "subnet-0755c2exxxxxxxx"
tags = {
Name = "HelloWorld"
}
}
【问题讨论】:
-
听起来您真正想要的是让您的 Terraform 配置了解 VPC,但不主动管理它。那是对的吗?否则,我假设您要管理 VPC,但要防止它被破坏。
-
正确你的第一个假设。我想将我的 EC2 实例放入我的非默认预制 VPC,但不让 Terraform 管理此 VPC。
标签: amazon-web-services amazon-ec2 terraform amazon-vpc