首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将子网列表传递给“subnet”属性?

如何将子网列表传递给“subnet”属性?
EN

Stack Overflow用户
提问于 2019-09-16 10:18:20
回答 1查看 93关注 0票数 0

我正在重写我的子网代码,使其更加灵活,并由参数驱动:

代码语言:javascript
复制
resource "aws_subnet" "private" {
  count             = "${var.az_count}"
  cidr_block        = "${cidrsubnet(aws_vpc.ecs.cidr_block, 8, count.index)}"
  availability_zone = "${data.aws_availability_zones.available.names[count.index]}"
  vpc_id            = "${aws_vpc.ecs.id}"
}

这是将子网传递给

代码语言:javascript
复制
resource "aws_ecs_service" "service" {
    network_configuration {
        subnets = [ "${aws_subnet.subnet1.id}", "${aws_subnet.subnet2.id}" ]
        ...
}

如何将子网I从aws_subnet.private传递到subnets属性?

我试过了

代码语言:javascript
复制
subnets = ${aws_subnet.priate[*].id}

但是有一个错误:

代码语言:javascript
复制
 Expected the start of an expression, but found an invalid expression token
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-16 11:13:14

首先,您可以删除${},除非您在进行插值。去掉这些东西,你就有了更好的可读性:

代码语言:javascript
复制
resource "aws_subnet" "private" {
  count             = var.az_count
  cidr_block        = cidrsubnet(aws_vpc.ecs.cidr_block, 8, count.index)
  availability_zone = data.aws_availability_zones.available.names[count.index]
  vpc_id            = aws_vpc.ecs.id
}

您使用splat的参考语法是正确的,并且您的拼写错误。试试这个:

代码语言:javascript
复制
subnets = aws_subnet.private[*].id

图片参考:https://www.terraform.io/docs/configuration/expressions.html#splat-expressions

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57949651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档