1

Ниже приведен фрагмент моего шаблона CloudFormation используется для связывания Elastic IP-адреса с основными IP сетевым интерфейсом:Назначение Elastic IP-адреса для вторичных частных IP-адресов с помощью SecondaryPrivateIpAddresses Списка атрибутов

 "MyInterfaceSelfEipAssociation": { 
     "Properties": { 
      "AllocationId": "eipalloc-XXXXX", 
      "NetworkInterfaceId": { 
       "Ref": "MyInterface" 
      }, 
      "PrivateIpAddress": { 
       "Fn::GetAtt": [ 
        "MyInterface", 
        "PrimaryPrivateIpAddress" 
       ] 
      } 
     }, 
     "Type": "AWS::EC2::EIPAssociation" 

Я хочу сделать то же самое для вторичных IP-адресов на этом интерфейсе, из которых два (определенные IP-адреса, которые я дал в списке, не назначенные AWS). т.е. «PrivateIpAddresses» блок интерфейса выглядит следующим образом:

   "PrivateIpAddresses": [ 
       { 
        "PrivateIpAddress": "10.X.X.XX", 
        "Primary": "true" 
       }, 
       { 
        "PrivateIpAddress": "10.X.X.XX", 
        "Primary": "false" 
       }, 
       { 
        "PrivateIpAddress": "10.X.X.XX", 
        "Primary": "false" 
       } 
      ], 

Я знаю, что я могу получить доступ к списку вторичных частных IP-адресов с Fn: GetAtt атрибут называют «SecondaryPrivateIpAddresses», который будет возвращать два вторичных частных IP-адресов выше для меня как список. Мой вопрос: как я могу обратиться к этому списку в JSON - по индексу?

Например, если бы я хотел назначить частный IP ко второму элементу в списке вторичных IP-адресов, он действует, чтобы сделать что-то вроде:

   "PrivateIpAddress": { 
       "Fn::GetAtt": [ 
        "Bigip1subnet1Az1Interface", 
        "SecondaryPrivateIpAddresses[1]" 
       ] 
      } 

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

ответ

2

Используйте Fn::Select внутренняя функция возвращает один объект из списка объектов по индексу:

 "PrivateIpAddress": { 
      "Fn::Select": [ 
      1, 
      { "Fn::GetAtt": [ 
       "Bigip1subnet1Az1Interface", 
       "SecondaryPrivateIpAddresses" 
      ]} 
      ] 
     } 
+1

Я считаю, что кронштейн перед Fn :: Select является постороннее, но я не могу предложить редактировать поскольку он слишком короткий. –

+0

Вы правы, обновили синтаксис, извините за опечатку! – wjordan

 Смежные вопросы

  • Нет связанных вопросов^_^