【发布时间】:2020-11-21 10:45:27
【问题描述】:
我正在尝试查询创建的 vpc 和安全组的值,我能够获取 vpc id 但是我无法获取安全组 id。
我的代码
provider "aws" {
region = "us-east-1"
}
data "aws_vpc" "vpc" {
filter {
name = "tag:pogimo123"
values = ["TRUE"]
}
}
data "aws_subnet_ids" "subnets" {
vpc_id = data.aws_vpc.vpc.id
filter {
name = "tag:Name"
values = ["*_pogimo123"]
}
}
data "aws_security_groups" "security-groups" {
filter {
name = "group-name"
values = ["pogimo123"]
}
filter {
name = "vpc-id"
values = ["${data.aws_vpc.vpc.id}"]
}
}
output "vpc-id" {
value ="${data.aws_vpc.vpc.id}"
}
output "security-groups" {
value ="${data.aws_security_groups.security-groups.id}"
}
结果
POGIMO123_PC:test-terraform pogimo123$ terraform apply
data.aws_vpc.vpc: Refreshing state...
data.aws_security_groups.security-groups: Refreshing state...
data.aws_subnet_ids.subnets: Refreshing state...
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
security-groups = terraform-20200731142029499400000002
vpc-id = vpc-6d012345
注意输出日志,它显示了 vpc 的正确值,而 security-groups 显示:
security-groups = terraform-20200731142029499400000002
即使我已经将 vpc-id 的绝对值和安全组的名称放在 terraform 代码中,此结果仍然会继续显示
【问题讨论】:
-
那是你的完整代码吗?
aws_security_groups数据源没有id属性,因此如果您尝试访问它应该会出错。与所有复数数据源一样,它返回一个ids属性,而不是它是安全组的所有 ID 的列表,然后您可以对其进行索引或适当地处理。 -
@ydaetskcoR - 你是对的,我现在让它工作了。我只是将“aws_security_groups”更改为“aws_security_group”
标签: amazon-web-services terraform aws-security-group