Amazon Serverless Application Model (SAM) условно включает в шаблон - PullRequest
0 голосов
/ 27 февраля 2020

Кто-нибудь нашел какие-то хитрости для условного включения чего-либо в шаблон SAM? Вот пример использования;

У нас есть песочница, где все находится в подсетях publi c, поэтому нашим лямбда-функциям не нужен доступ VP C. Кроме того, в этой среде нет шлюзов NAT, поэтому если мы предоставим VP C доступ к лямбде, они потеряют соединение inte rnet. Однако в других наших средах лямбды нуждаются в доступе VP C, так как многие ресурсы находятся в частных подсетях.

Итак, в приведенном выше примере, что было бы лучшим способом включить только конфигурацию VP C когда переменная окружения означает, что мы не внедряем в изолированную программную среду?

Любые предложения будут наиболее полезны!

Спасибо всем.

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Вы можете сделать это, используя функцию Fn::If в сочетании со значением AWS::NoValue (для случая, когда вам это не нужно).

0 голосов
/ 28 февраля 2020

Как говорит Джейсон выше, Fn :: If выполняет свою работу:

VpcConfig:
        SecurityGroupIds:
          !If
            - IsNotSandbox
            -
              - !Ref SecurityGroup
            - !Ref "AWS::NoValue"
        SubnetIds:
          !If
            - IsNotSandbox
            -
              - !Ref SubNet1
              - !Ref SubNet2
            - !Ref "AWS::NoValue"
...