gpt4 book ai didi

Terraform如何获取aws_lb的IP地址

转载 作者:行者123 更新时间:2023-12-03 15:29:45 25 4
gpt4 key购买 nike

问题

在 Terraform 创建 aws_lb 时,是否有办法获取 aws_lb 资源的分配 IP 地址?

AWS documentation - NLB - To find the private IP addresses to whitelist ,我们可以找出与ELB关联的IP地址。

  • https://console.aws.amazon.com/ec2/ 打开 Amazon EC2 控制台.
  • 在导航 Pane 中,选择网络接口(interface)。
  • 在搜索字段中,输入您的网络负载均衡器的名称。
    每个负载平衡器子网有一个网络接口(interface)。
  • 在每个网络接口(interface)的详细信息选项卡上,复制地址
    主要私有(private) IPv4 IP
    .

  • 背景

    为了能够设置安全组以将 ELB IP 地址列入白名单,因为网络负载均衡器不能没有安全组,如 Network Load Balancers don't have Security Groups .

    考虑 aws_network_interface但它不适用于错误。

    Error: no matching network interface found



    另外我认为数据源假设资源已经存在并且不能用于由 Terraform 创建的资源。

    最佳答案

    在 Terraform 中仅使用 HCL 的更优雅的解决方案:

    data "aws_network_interface" "lb" {
    for_each = var.subnets

    filter {
    name = "description"
    values = ["ELB ${aws_lb.example_lb.arn_suffix}"]
    }

    filter {
    name = "subnet-id"
    values = [each.value]
    }
    }

    resource "aws_security_group" "lb_sg" {
    vpc_id = var.vpc_id

    ingress {
    from_port = 0
    to_port = 0
    protocol = "tcp"
    cidr_blocks = formatlist("%s/32", [for eni in data.aws_network_interface.lb : eni.private_ip])
    description = "Allow connection from NLB"
    }
    }

    来源: https://github.com/terraform-providers/terraform-provider-aws/issues/3007

    希望这可以帮助。

    关于Terraform如何获取aws_lb的IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56713493/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com