如何通过for_each仅在create_service_token为true时创建Terraform资源?
解决方案
要实现仅在create_service_token == true时创建example_resource实例,你需要通过for表达式过滤var.tunnel_service_maps,只保留符合条件的条目。修改后的代码如下:
resource "example_resource" "example" { for_each = { for k, v in var.tunnel_service_maps : k => v if v.create_service_token } name = "allow-service-token-${each.value.target_service}" }
代码说明
{ for k, v in var.tunnel_service_maps : k => v if v.create_service_token }:遍历原映射的键值对(k为键名,v为对应对象),仅保留create_service_token值为true的条目,生成新的映射供for_each使用。- 结合你提供的变量实例,过滤后的映射会包含
tunnel1和tunnel3两个条目,最终将创建2个example_resource实例,完全匹配预期需求。
内容的提问来源于stack exchange,提问作者smark91
相关产品推荐
相关产品推荐

