首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在terraform中的"subnet_mapping“中使用"for_each”,以便将创建的每个弹性IP映射到每个"subnet_id“

如何在terraform中的"subnet_mapping“中使用"for_each”,以便将创建的每个弹性IP映射到每个"subnet_id“
EN

Stack Overflow用户
提问于 2021-02-02 10:24:43
回答 2查看 131关注 0票数 0

//创建我的弹性公网my:

代码语言:javascript
复制
resource "aws_eip" "nlb_eips" {
  count = length(module.vpc.public_subnets)
}

//这需要创建我的NLB并附加弹性公网it:

代码语言:javascript
复制
resource "aws_lb" "data-lake-NLB" {

  name               = "data-lake-NLB"
  internal           = false
  load_balancer_type = "network"
  enable_deletion_protection = true
  subnet_mapping {
    for_each = {for k,v in     => ... )  }     ????? # This part I can't figure out. 
    subnet_id = each.key
    allocation_id = each.value
  }
}
EN

回答 2

Stack Overflow用户

发布于 2021-02-02 10:52:15

您可以使用dynamic blocks

代码语言:javascript
复制
resource "aws_lb" "data-lake-NLB" {

  name               = "data-lake-NLB"
  internal           = false
  load_balancer_type = "network"
  enable_deletion_protection = true

  dynamic "subnet_mapping" {

      for_each = range(length(var.public_subnets))

      content {
         subnet_id     = module.vpc.public_subnets[ingress.key].id
         allocation_id = aws_eip.nlb_eips[ingress.key].id
      }
  }

}

确切的形式取决于module.vpc.public_subnets实际是什么。

票数 2
EN

Stack Overflow用户

发布于 2021-02-03 07:18:47

代码语言:javascript
复制
  resource "aws_lb" "data-lake-NLB" {
  name               = "data-lake-NLB"
  internal           = false
  load_balancer_type = "network"
  enable_deletion_protection = true

  dynamic "subnet_mapping" { 
      for_each = local.for_each_map      
 aws_eip.nlb_eips[*].public_ip)
    content {
      subnet_id = subnet_mapping.key
      allocation_id = subnet_mapping.value
    }
  }
}
locals {
  for_each_map = zipmap(module.vpc.public_subnets, aws_eip.nlb_eips[*].id) 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66002836

复制
相关文章

相似问题

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