AWS网络负载均衡器CloudFormation IP

时间:2019-08-26 11:07:22

标签: amazon-web-services amazon-cloudformation amazon-elb elastic-ip

在CloudFormation模板中,我创建了弹性IP和网络负载平衡器。 创建过程中没有问题:

  Subnet1a:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId:
        Ref: VPC
    AvailabilityZone: 'eu-west-1a'
    CidrBlock: 
      Ref: 042SubnetCidr
    MapPublicIpOnLaunch: true

  LoadBalancerElasticIP:
    Type: AWS::EC2::EIP

  LoadBalancer:
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
    Properties:
      IpAddressType: ipv4
      Name: network-loadbalancer
      Scheme: internet-facing
      Subnets: 
       - Ref: Subnet1a
    Type: network

侦听器和目标组是分别创建的,并且也可以与没有弹性IP的LB一起使用。

现在,我通过将子网更改为SubnetMappings属性来尝试将此弹性IP分配给负载均衡器,但这给了我一个错误:“ LoadBalancer CREATE_FAILED属性SubnetId不能为空。”

  LoadBalancer:
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
    Properties:
      IpAddressType: ipv4
      Name: network-loadbalancer
      Scheme: internet-facing
      SubnetMappings: 
        - AllocationId: !Ref LoadBalancerElasticIP
        - SubnetId: !Ref Subnet1a
    Type: network

一段时间以来,我一直在尝试不同的解决方案。看不出什么问题。有任何想法吗?我应该创建网络接口吗?并为接口分配eip,然后将接口分配给负载均衡器?

1 个答案:

答案 0 :(得分:1)

根据AWS::ElasticLoadBalancingV2::LoadBalancer的文档,ng g m sub-folder/moduleName --routing的期望值为SubnetMappings,但是您要传递两个列表。您应该将其更改为以下内容:

List of SubnetMapping