如果设置安全组,则无法使用 terraform 创建 ec2 实例

Dan*_* Wu 5 amazon-web-services terraform terraform-provider-aws

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

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

代码是

\n
 variable "ecs_cluster_name" {\n  type    = string\n  default = "production"\n}\n\ndata "aws_ami" "ecs_ami" {\n  most_recent = true\n  owners      = ["amazon"]\n\n  filter {\n    name   = "name"\n    values = ["amzn2-ami-ecs-hvm-2.0.202*-x86_64-ebs"]\n  }\n}\n\noutput "ami_name" {\n  value       = data.aws_ami.ecs_ami.name\n  description = "the name of ecs ami"\n}\n\noutput "security_group_id" {\n  value       = aws_security_group.default.id\n  description = "id of security group"\n}\n\n\nresource "aws_security_group" "default" {\n  name = "terraform_Security_group"\n  ingress {\n    from_port   = 22\n    to_port     = 22\n    protocol    = "tcp"\n    cidr_blocks = ["0.0.0.0/0"]\n  }\n\n  egress {\n    from_port   = 0\n    to_port     = 0\n    protocol    = "-1"\n    cidr_blocks = ["0.0.0.0/0"]\n  }\n}\n\nresource "aws_instance" "my_first_instance" {\n  ami           = data.aws_ami.ecs_ami.id\n  instance_type = "t2.micro"\n\n  # security_groups = ["sg-06e91dae98b2c44c6"]\n  security_groups = [aws_security_group.default.id]\n\n  user_data = <<-EOF\n                #!/bin/bash\n                echo ECS_CLUSTER={cluster_name} >> /etc/ecs/ecs.config\n                EOF\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Mar*_*cin 12

您应该使用vpc_security_group_ids

  vpc_security_group_ids = [aws_security_group.default.id]
Run Code Online (Sandbox Code Playgroud)