使用Terraform设置安全组时无法创建EC2实例

5

我尝试创建一个EC2实例。当我不设置安全组时,一切正常,但是当设置安全组时,它会失败并显示以下消息:

│ Error: creating EC2 Instance: InvalidParameterValue: Value () for parameter groupId is invalid. The value cannot be empty
│   status code: 400, request id: 2935799e-2364-4676-ba02-457740336cd1
│
│   with aws_instance.my_first_instance,
│   on main.tf line 44, in resource "aws_instance" "my_first_instance":
│   44: resource "aws_instance" "my_first_instance" {

这段代码是

 variable "ecs_cluster_name" {
  type    = string
  default = "production"
}

data "aws_ami" "ecs_ami" {
  most_recent = true
  owners      = ["amazon"]

  filter {
    name   = "name"
    values = ["amzn2-ami-ecs-hvm-2.0.202*-x86_64-ebs"]
  }
}

output "ami_name" {
  value       = data.aws_ami.ecs_ami.name
  description = "the name of ecs ami"
}

output "security_group_id" {
  value       = aws_security_group.default.id
  description = "id of security group"
}


resource "aws_security_group" "default" {
  name = "terraform_Security_group"
  ingress {
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

resource "aws_instance" "my_first_instance" {
  ami           = data.aws_ami.ecs_ami.id
  instance_type = "t2.micro"

  # security_groups = ["sg-06e91dae98b2c44c6"]
  security_groups = [aws_security_group.default.id]

  user_data = <<-EOF
                #!/bin/bash
                echo ECS_CLUSTER={cluster_name} >> /etc/ecs/ecs.config
                EOF
}
1个回答

10

修复了这个错误。我们能否始终使用vpc_security_group_ids来替换security_groups? - Daniel Wu
1
@DanielWu 你可以在这里找到有关差异的更多信息(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-securitygroups)。基本上,`security_groups` 的使用范围有限,并且由于历史原因仍然可用。 - Marcin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接