【问题标题】:terraform > forces new resource on security groupterraform > 强制安全组上的新资源
【发布时间】: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)

什么给了?!

【问题讨论】:

  • 请注意,您在变量上混淆了defaultdescription
  • 您运行的是什么版本的 Terraform 和 AWS 提供商?此外,在 VPC 中创建实例时,您应该真正使用 vpc_security_group_ids 而不是 security_groups。请参阅文档:terraform.io/docs/providers/aws/r/instance.html#security_groups

标签: terraform


【解决方案1】:

您错误地将 vpc_security_group_id 分配到 security_groups 而不是 vpc_security_group_ids。将
security_groups = [ "sg-7310e10b" ]
更改为
vpc_security_group_ids = [ "sg-7310e10b" ],一切都会好起来的。

【讨论】:

    猜你喜欢
    • 2019-02-27
    • 2022-01-12
    • 2022-12-29
    • 2021-11-05
    • 1970-01-01
    • 2018-08-16
    • 2019-12-14
    • 2020-04-06
    • 2016-08-15
    相关资源
    最近更新 更多