Ошибка ELB - несколько подсетей в одной зоне доступности

Мы пытаемся создать балансировщик сетевой нагрузки с помощью облачной информации в частной подсети, и у нас есть 6 частных подсетей - по 2 в каждой зоне доступности.

В настоящее время мы передаем идентификаторы подсети вручную, выбирая одну подсеть в каждой зоне доступности, как показано ниже.

LoadBalancer:
        Type: AWS::ElasticLoadBalancingV2::LoadBalancer
        Properties:
          Type: network
          Scheme: internal
          Subnets: !Ref SubnetID
          Tags:
            - Key: Name
              Value: !Ref EnvName

где SubnetID - параметр, принимающий список строк.

Есть ли способ автоматически получить эту информацию о подсети в облачной информации (выбрать идентификаторы частной подсети по одному для каждой зоны доступности) через инфраструктуру в виде кода

P.S: Передача всех 6 подсетей в виде списка не позволяет создать балансировщик нагрузки, потому что LB каким-то образом выбирает 2 подсети в одной зоне доступности, а это недопустимо.

Я ищу полностью автоматизированное решение или какой-либо лучший способ сделать это?


person vkr    schedule 15.05.2020    source источник


Ответы (1)


Если вы знаете, какие подсети в списке являются частными, вы можете выбрать их вручную. Например:

Subnets:
  - !Select [0, !Ref SubnetID]
  - !Select [1, !Ref SubnetID]

Для полностью автономного решения, когда вы не знаете, какие подсети являются частными, а какие нет, вам придется разработать пользовательский ресурс лямбда-функция, которая вернет список интересующих подсетей в ваш стек CFN.

person Marcin    schedule 15.05.2020
comment
Спасибо за это. Но я ищу полностью автоматизированное решение. Можно ли поделиться псевдокодом лямбды пользовательского ресурса? или как лучше всего это сделать - person vkr; 16.05.2020
comment
@vkr Так что пользовательский ресурс - единственный выход. У меня нет такой лямбды, но для разработки собственных ресурсов я обычно использую custom помощник по ресурсам. Это немного упрощает разработку пользовательских ресурсов. - person Marcin; 16.05.2020