【发布时间】:2018-12-31 23:27:02
【问题描述】:
我有一段非常简单的 Terraform 代码:
provider "aws" {
region = "eu-west-1"
}
module ec2 {
source = "./ec2_instance"
name = "EC2 Instance 1"
}
模块在哪里:
variable "name" {
default = "Default Name from ec2_instance.tf"
}
resource "aws_instance" "example" {
ami = "ami-e5083683"
instance_type = "t2.nano"
subnet_id = "subnet-3e976259"
associate_public_ip_address = true
security_groups = [ "sg-7310e10b" ]
tags {
Name = "${var.name}"
}
}
当我第一次运行它时,我得到这个输出:
security_groups.#: "" => "1"
security_groups.1642973399: "" => "sg-7310e10b"
但是,下次我尝试plan 时,我得到了:
security_groups.#: "0" => "1" (forces new resource)
security_groups.1642973399: "" => "sg-7310e10b" (forces new resource)
什么给了?!
【问题讨论】:
-
请注意,您在变量上混淆了
default和description。 -
您运行的是什么版本的 Terraform 和 AWS 提供商?此外,在 VPC 中创建实例时,您应该真正使用
vpc_security_group_ids而不是security_groups。请参阅文档:terraform.io/docs/providers/aws/r/instance.html#security_groups
标签: terraform