Amazon web services Terraform将现有安全组添加到新的自动缩放ec2组
我想将VPC中定义的现有安全组添加到EC2自动扩展组。 没有定义LB。本例现在创建一个EC2实例 Terraform文档表明,这对于使用sg_附件的EC2实例是可能的Amazon web services Terraform将现有安全组添加到新的自动缩放ec2组,amazon-web-services,amazon-ec2,terraform,autoscaling,Amazon Web Services,Amazon Ec2,Terraform,Autoscaling,我想将VPC中定义的现有安全组添加到EC2自动扩展组。 没有定义LB。本例现在创建一个EC2实例 Terraform文档表明,这对于使用sg_附件的EC2实例是可能的 resource "aws_network_interface_sg_attachment" "bastion" { security_group_id = var.sg_id network_interface_id = aws_autoscaling_group.bastion.primary_network_i
resource "aws_network_interface_sg_attachment" "bastion" {
security_group_id = var.sg_id
network_interface_id = aws_autoscaling_group.bastion.primary_network_interface_id
}
但我得到以下错误,可能是因为我使用的是自动缩放组:
错误:不支持的属性
在……\modules\ec2\u auto\u scaling\u group\bastion.tf第51行的
资源“aws网络接口”sg附件“堡垒”:51:网络接口id= aws\u自动校准\u组.bastion.primary\u网络\u接口\u id 此对象没有名为的参数、嵌套块或导出属性 “主网络接口id” 我看到了自动缩放组附件- 但这根本不涉及安全组
当然,我可以使用所有相同的规则隐式地指定一个新的安全组,或者只声明一个ec2实例。但是,在控制台上创建自动缩放组时,您可以选择导入现有安全组。所以我认为terraform有一个等价物。看来我忽略了以前的设置:
resource "aws_launch_configuration" "bastion" {
# Launch configuration can't be updated, (provisioning)
# in order to update the resource will be destroyed and rebuilt
name_prefix = var.bastion_name_prefix
image_id = data.aws_ami.RHEL_77.id
instance_type = var.bastion_instance_type
key_name = aws_key_pair.bastion.key_name
associate_public_ip_address = true
enable_monitoring = false
security_groups = [var.vpc_main_sg_id,aws_security_group.bastion.id]
lifecycle {
create_before_destroy = true
}
}
将安全组添加到aws_launch_配置中,修复了此问题。所有自动缩放组都需要启动配置或启动模板来提供实例设置。我建议考虑使用启动模板,因为它是使用所有较新的自动缩放功能所必需的