Вложенные сопоставления в шаблоне Cloudformation - PullRequest
0 голосов
/ 11 июня 2019

У меня есть сопоставление для настройки VPC в моем шаблоне облачной информации, которое отлично работает, если оно у меня есть, например

SubnetConfig:
    VPC:
      CIDR: '10.1.0.0/16'
    PublicOne:
      CIDR: '10.1.0.0/22'
    PublicTwo:
      CIDR: '10.1.4.0/22'
    PrivateOne:
      CIDR: '10.1.8.0/22'
    PrivateTwo:
      CIDR: '10.1.12.0/22'

Я могу получить значения, используя !FindInMap ['SubnetConfig', 'VPC', 'CIDR'] OR !FindInMap ['SubnetConfig', 'PublicOne', 'CIDR'].

Однако я хочу иметь разные диапазоны CIDR в зависимости от PROD или NON-PROD . В этом случае мое отображение будет выглядеть так:

SubnetConfig:
    PROD:
      VPC:
        CIDR: '10.1.0.0/16'
      PublicOne:
        CIDR: '10.1.0.0/24'
      PublicTwo:
        CIDR: '10.1.1.0/24'
      PrivateOne:
        CIDR: '10.1.2.0/24'
      PrivateTwo:
        CIDR: '10.1.3.0/24'
    NON-PROD:
      VPC:
        CIDR: '10.2.0.0/16'
      PublicOne:
        CIDR: '10.2.0.0/22'
      PublicTwo:
        CIDR: '10.2.4.0/22'
      PrivateOne:
        CIDR: '10.2.8.0/22'
      PrivateTwo:
        CIDR: '10.2.12.0/22'

Конечно, облачные данные не позволяют такого рода картирование. Есть ли способ определить это отображение? Я ссылался на этот пост , но это не помогает

Ответы [ 2 ]

1 голос
/ 11 июня 2019

Одной альтернативой может быть выравнивание отображения на один уровень, например

Mappings:
  SubnetConfig:
    PROD:
      VPCCIDR: '10.1.0.0/16'
      PublicOneCIDR: '10.1.0.0/24'
      PublicTwoCIDR: '10.1.1.0/24'
      PrivateOneCIDR: '10.1.2.0/24'
      PrivateTwoCIDR: '10.1.3.0/24'
    NON-PROD:
      VPCCIDR: '10.2.0.0/16'
      PublicOneCIDR: '10.2.0.0/22'
      PublicTwoCIDR: '10.2.4.0/22'
      PrivateOneCIDR: '10.2.8.0/22'
      PrivateTwoCIDR: '10.2.12.0/22'
0 голосов
/ 11 июня 2019

Одним из подходов может быть то, что вы можете создать 2 файла свойств в формате JSON, один из которых имеет диапазон для PROD, а другой - для NON PROD. Затем, возможно, вы сможете прочитать свой код свойства в зависимости от среды, в которой он развертывается, выбрать подходящий файл, прочитать значения и передать их в шаблон CF во время его развертывания. Поэтому вместо жесткого кодирования диапазонов IP-адресов в шаблоне вы можете сделать их параметризованными и считывать из входных параметров, которые вы передаете в шаблон из кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...