You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform For表达式示例中的键与值如何识别及区分?

理解Terraform For表达式中的Map键与值

一、Map键与值的判定规则

在Terraform的Map(映射)结构里:

  • **键(Key)**是每个元素的唯一标识,一般是字符串类型,用于快速定位对应的内容
  • **值(Value)**是键关联的具体内容,可以是字符串、列表、对象等任意Terraform支持的类型

以你定义的local.projects为例:

  • 顶级的customer_api、partner_api、internal_api就是键
  • 每个键对应的{ region = "...", environments = [...] }对象就是值

二、示例For表达式的键值解析

看你写的For表达式代码:

australiasoutheast_region = [
  for k, v in local.projects :
  k
  if v.region == "australiasoutheast" && contains(v.environments, "uat")
]

这里的k和v是遍历Map时自定义的变量名(可换成任意合法名称,比如project_id和project_config),作用是分别指代:

  • k:每次遍历拿到的local.projects顶级键(比如customer_api)
  • v:对应键关联的对象值(比如k=customer_api时,v就是{ region = "australiasoutheast", environments = ["dev", "uat", "prd"] })

三、表达式的执行结果

这个For表达式的逻辑是筛选同时满足两个条件的键:

  1. 值对象的region字段等于australiasoutheast
  2. 值对象的environments列表包含uat

遍历三个项目后,只有customer_api符合要求,所以local.australiasoutheast_region最终的结果是:

["customer_api"]

内容的提问来源于stack exchange,提问作者shameera2008

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 14:43:18