Шаблон YAML Cloudformation, если что-то еще работает не так, как ожидалось

#amazon-web-services #syntax #yaml #ip #amazon-cloudformation

Вопрос:

У меня есть файл cloudformation, который проверяет, добавляет ли Apple IP-адреса, а также добавляет ли другие IP-адреса.

Тем не менее, я хочу добавить IP-адреса как для Apple, так и для Apple, не копируя IP-адреса в них обоих.

Написав это один раз!

При попытке сделать это я получаю ошибки проверки…

Это мой оригинальный код —

 SecurityGroupIngress: !If
        - IsApple
        - - Description: "Its Apple IP"
            FromPort: X
            ToPort: X
            IpProtocol: tcp
            CidrIp: X.X.X.X
        - - Description: "It's not Apple IP"
            FromPort: X
            ToPort: X
            IpProtocol: tcp
            CidrIp: X.X.X.X

 

Это то изменение, которого я хочу —

 SecurityGroupIngress:
         - Description: "Its *All* fruits IPs"
           FromPort: X
           ToPort: X
           IpProtocol: tcp
           CidrIp: X.X.X.X
      !If
        - IsApple
        - - Description: "Its Apple IP"
            FromPort: X
            ToPort: X
            IpProtocol: tcp
            CidrIp: X.X.X.X
        - - Description: "It's not Apple IP"
            FromPort: X
            ToPort: X
            IpProtocol: tcp
            CidrIp: X.X.X.X

 

Ответ №1:

Вам следует переместиться, вы !If находитесь внутри SecurityGroupIngress массива:

   SecurityGroupIngress:
         - Description: "Its *All* fruits IPs"
           FromPort: X
           ToPort: X
           IpProtocol: tcp
           CidrIp: X.X.X.X
        - !If
          - IsApple
          - Description: "Its Apple IP"
            FromPort: X
            ToPort: X
            IpProtocol: tcp
            CidrIp: X.X.X.X
          - Description: "It's not Apple IP"
            FromPort: X
            ToPort: X
            IpProtocol: tcp
            CidrIp: X.X.X.X
 

Я не проверял это, но я думаю, что все вышесказанное должно сработать.