terraform - Terraform 在 for_each 上获取列表索引
问题描述
Terraform新手在这里。我想使用 迭代一个列表for_each
,但似乎键和值是相同的:
provider "aws" {
profile = "default"
region = "us-east-1"
}
variable "vpc_cidrs" {
default = ["10.0.0.0/16", "10.1.0.0/16"]
}
resource "aws_vpc" "vpc" {
for_each = toset(var.vpc_cidrs)
cidr_block = each.value
enable_dns_hostnames = true
tags = { Name = "Company0${each.key}" }
}
我希望标签 Name 是"Name" = "Company01"
,"Name" = "Company02"
但根据terraform apply
,我得到:
"Name" = "Company010.0.0.0/16"
和"Name" = "Company010.1.0.0/16"
我错过了什么?
解决方案
使用index函数找到了一个简单的解决方案:
tags = { Name = "Company0${index(var.vpc_cidrs, each.value) + 1}" }
推荐阅读
- laravel-5 - 我想从网址栏“产品”访问。“.../product/paracetamol 1”,但我给出了“未定义的变量:产品 (0)”。
- ruby - 使用 ruby 在 linux 上使用 selenium webdriver 的问题
- vue.js - Microsoft Graph 在身份验证后记住用户
- r - 使用 lapply 从数据框列表创建新数据框
- javascript - 必须刷新才能预先选中复选框,具体取决于 mongoDb 值
- firebase - 颤振错误:输入“未来”
' 不是类型 'List 的子类型 ' - visual-studio-code - 有没有办法在 Visual Studio Code(VS 代码)中自动格式化修改后的代码?
- angular - 量角器通过模板引用变量 (#) 查找元素
- php - 如何修复“SyntaxError: Unexpected token '<'”
- sql-server - 计算分区 Spark JDBC 的下限和上限