Почему множественные условия не оцениваются на ресурсе? - PullRequest
1 голос
/ 18 мая 2019

Мои условия CloudFormation оцениваются неправильно, когда я задаю несколько условий для ресурсов.

Я создал модульный шаблон CodePipeline, чтобы разрешить развертывание с базой данных или без нее.Я поместил несколько условий в некоторые ключевые ресурсы.

Conditions:
  HasDatabase: !Equals [ !Ref HasDatabase, true ]
  IsECS: !Equals [ !Ref IsECS, true ]

Resources:
  MyFakeBucket:
    Type: AWS::S3::Bucket
    Condition: IsECS
    Condition: HasDatabase

Я ожидаю, что MyFakeBucket будет создан, когда ОБА условия оцениваются как true, однако он создается, когда ЛЮБЫЕ.

1 Ответ

2 голосов
/ 18 мая 2019

Мое решение состояло в том, чтобы создать новые условия, которые были комбинациями на существующих:

Conditions:
  HasDatabase: !Equals [ !Ref HasDatabase, true ]
  IsECS: !Equals [ !Ref IsECS, true ]
  ECSNoDB: !And
    - !Condition NoDatabase
    - !Condition IsECS
  ECSDB: !And
    - !Condition HasDatabase
    - !Condition IsECS

Теперь мои ресурсы выглядят так:

Resources:
  MyFakeBucket:
    Type: AWS::S3::Bucket
    Condition: ECSDB
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...