资源编排服务 RFS
资源编排服务 RFS
- 最新动态
- 产品介绍
- 用户指南
- 模板参考
- API参考
- 常见问题
-
更多文档
-
用户指南(阿布扎比区域)
- 产品介绍
- 入门
- 堆栈管理
- 审计
-
模板参考
- 模板简介
- 元素列表
-
数据结构
- AOS.BatchItem
- Basic.KeyValuePair
- Basic.Label
- Basic.LabelSelector
- Basic.NameAndSecretValue
- Basic.NameKeyPair
- Basic.NameValuePair
- CCE.Addon.AutoScaler.Node
- CCE.DataVolume
- CCE.HelmChart
- CCE.Labels
- CCE.NodePool
- CCE.PublicIP
- DCS.InstanceBackupPolicy
- DCS.PeriodicalBackupPlan
- ECS.DataVolume
- ECS.EIP
- ECS.ExtendParam
- ECS.MountedVolumes
- ECS.NICS
- ECS.Personality
- ECS.PublicIP
- ECS.RootVolume
- ECS.SecurityGroup
- ECS.ServerTags
- ECS.VolumeExtendParam
- K8S.PodSecurityContext
- K8S.SecurityContext.SeLinuxOptions
- MySQL.DBUser
- MySQL.DataBase
- MySQL.DataStore
- RDS.BackupStrategy
- RDS.HA.Mysql
- RDS.Volume
- VPC.BandWidth
- VPC.PublicIP
- 附录
- 常见问题
- 修订记录
- API参考(阿布扎比区域)
- 用户指南(吉隆坡区域)
- API参考(吉隆坡区域)
-
用户指南(阿布扎比区域)
- 通用参考
本文导读
展开导读
链接复制成功!
for_each
for_each 在功能上与 count 相似,for_each 使用键值对或字符串集合的形式快速地将值填入到对应的属性中,不仅可以优化脚本结构也有利于理解多实例间的关系。
在使用映射类型表达时,可以使用 "each.key" 和 "each.value" 来访问映射的键和值。以创建VPC为例,通过 for_each 中的键值对,可以灵活配置VPC的名称和CIDR。
resource "huaweicloud_vpc" "vpcs" { for_each = { vpc_demo1 = "192.168.0.0/16" vpc_demo2 = "172.16.0.0/16" } name = each.key cidr = each.value }
在使用字符串集合类型表达时,"each.key" 等同于 "each.value",一般使用 each.key表示,另外,可以通过 toset() 函数将定义的 list 类型进行转化:
resource "huaweicloud_networking_secgroup" "mysecgroup" {
for_each = toset(["secgroup_demo1", "secgroup_demo2"])
name = each.key
}
# 通过变量表示 for _each
variable "secgroup_name" {
type = set(string)
}
resource "huaweicloud_networking_secgroup" "mysecgroup" {
for_each = var.secgroup_name
name = each.key
}
使用 for_each 创建的资源需要通过键名进行访问,格式为:<资源类型>.<名称>[键名]
# 访问 vpc_demo1 # 访问 vpc_demo1 的ID
由于 count 和 for_each 都可用于创建多个资源,建议参考以下规则进行选择:
1、如果资源实例的参数完全或者大部分一致,建议使用count;
2、如果资源的某些参数需要使用不同的值并且这些值不能由整数派生,建议使用 for_each;
父主题: Metadata