Amazon web services Terrafrom数据源aws_vpcs-count.index错误
我正在尝试使用数据源aws_vpc获取具有特定标记的vpc id 供参考: 下面是我的地形yaml文件。 使用的版本为:0.12.3Amazon web services Terrafrom数据源aws_vpcs-count.index错误,amazon-web-services,terraform,Amazon Web Services,Terraform,我正在尝试使用数据源aws_vpc获取具有特定标记的vpc id 供参考: 下面是我的地形yaml文件。 使用的版本为:0.12.3 data "aws_vpcs" "foo" { tags = { Name = "test1-VPC" } } resource "aws_security_group" "cluster" { count = "${length(data.aws_vpcs.foo.ids)}" vpc_id = "${tolist(data.aws_
data "aws_vpcs" "foo" {
tags = {
Name = "test1-VPC"
}
}
resource "aws_security_group" "cluster" {
count = "${length(data.aws_vpcs.foo.ids)}"
vpc_id = "${tolist(data.aws_vpcs.foo.ids)[count.index]}"
}
resource "aws_security_group_rule" "cluster-ingress-node-https" {
description = "Rule to do xyz"
from_port = 443
protocol = "tcp"
security_group_id = "${aws_security_group.cluster.id}"
to_port = 443
type = "ingress"
}
我正在犯错误。请求帮助以修复此问题
terraform plan
Error: Missing resource instance key
on modules/eks/eks-cluster.tf line 40, in resource "aws_security_group_rule" "cluster-ingress-node-https":
40: security_group_id = "${aws_security_group.cluster.id}"
Because aws_security_group.cluster has "count" set, its attributes must be
accessed on specific instances.
For example, to correlate with indices of a referring resource, use:
aws_security_group.cluster[count.index]
在使用
aws\u security\u组
资源时,您正在创建aws\u security\u组
的列表。错误甚至提到:
因为aws_security_group.cluster设置了“count”,所以它的属性
必须在特定实例上访问
因此,您需要包括count on the
aws_security_group_rule
资源,并为创建的每个aws_security_group_rule
创建一个aws_security_group_rule
,或者如果您希望只返回一个VPC,通过访问返回的索引为0的aws\u vpcs.foo.ids
,只创建一个aws\u security\u组
。在使用aws\u security\u组
资源时,您正在创建一个aws\u security\u组
的列表。错误甚至提到:
因为aws_security_group.cluster设置了“count”,所以它的属性
必须在特定实例上访问
因此,您需要包括count on the
aws_security_group_rule
资源,并为创建的每个aws_security_group_rule
创建一个aws_security_group_rule
,或者如果您希望只返回一个VPC,通过访问返回的索引为0的aws\u vpcs.foo.ids
,只创建一个aws\u security\u组。您需要转换安全组列表。
Terraform提供了展平功能
之后不应出现此错误您需要转换安全组列表。
Terraform提供了展平功能
您不应该在事后收到此错误我知道这是不久前发布的。偶然发现了这个问题
${aws\u security\u group.cluster.*.id}
应该这样做
由于资源aws\u security\u组
正在创建多个具有计数的安全组,因此资源块aws\u security\u组规则
需要引用列表中的正确索引。我知道这是不久前发布的。偶然发现了这个问题
${aws\u security\u group.cluster.*.id}
应该这样做
由于资源aws\u security\u group
正在创建多个具有计数的安全组,因此资源块aws\u security\u group\u rule
需要引用列表中的正确索引。您是否确实有多个VPC以这种方式标记,并试图同时管理?如果没有,您应该使用单一的aws_vpc
数据源,并删除此处的所有计数。您是否确实有多个vpc以这种方式标记,并试图同时管理?如果不是,您应该使用单数aws_vpc
数据源并删除此处的所有计数。谢谢。。我可以使用as-bellow-security\u-group\u-id=“${aws\u-security\u-group.cluster.0.id}谢谢..我可以使用as-bellow-security\u-group\u-id=“${aws\u-security\u-group.cluster.0.id}谢谢。我还没有用过flatten,但会研究一下的。谢谢。我还没有用过flatten,但会研究一下。