【发布时间】:2020-12-13 07:27:19
【问题描述】:
要求:-
我有多个 EC2 组(比如 2 组),其中每组包含 6 个 EC2。我必须为每个组附加不同的 SG。
示例:-
Group1 包含:- Head1,子:EC2-1,EC2-2....6 并且需要附加 SG1
Group2 包含 :- Head2, child :EC2-3, EC2-4 ...6 并且需要附加 SG2
我不想编写单独的资源“aws_instance” 头模块
resource "aws_security_group" "sg" {
count = var.ec2_instance_count
name = "${local.account}${count.index}"
vpc_id = local.vpc_id
}
resource "aws_instance" "ec2_instance" {
count = var.ec2_instance_count
security_groups = [element(aws_security_group.sg.*.id, count.index)]
}
子模块:
data "aws_security_groups" "data_security_group" {
filter {
name = "group-name"
values = ["${local.account}${count.index}"]
}
}
resource "aws_instance" "ec2_child" {
count = var.ec2_instance_count*var.numberofchild
security_groups = [element(aws_security_group.data_security_group.*.id, count.index)]
}
错误:启动源实例时出错:InvalidGroup.NotFound:安全组 'terraform-2020082 VPC 'vpc-ghhje85abcy' 中不存在 4151444795600000001' 状态码:400,请求ID:9260fd88-a03a-4c46-b67c-3287594cdab5
在 main.tf 第 68 行,在资源“aws_instance”“ec2_instance”中: 68:资源“aws_instance”“ec2_instance”{
注意:我使用的是data "aws_security_groups" 而不是data "aws_security_group"。如果我使用后一个,我知道我将只能在数据资源中获得一个 SG,它会抛出一个错误:多个安全组匹配;我通过使用data "aws_security_groups" 继续前进,这个错误消失了。但我面临的最新错误是:InvalidGroup.NotFound 如上所述。
更新:我能够使用数据资源并且能够将不同的 SG 附加到不同的 EC2。唯一的问题是随机测序。对于第 1 组的所有 6 个 EC2,我希望他们分配第一个 SG,依此类推。
【问题讨论】:
标签: amazon-ec2 terraform terraform-provider-aws aws-security-group terraform0.12+