在资源上设置多个条件时,我的CloudFormation条件未正确评估。
我已经创建了一个模块化的CodePipeline模板,可以在有或没有数据库的情况下进行部署。我在一些关键资源上设置了多个条件。
Conditions:
HasDatabase: !Equals [ !Ref HasDatabase, true ]
IsECS: !Equals [ !Ref IsECS, true ]
Resources:
MyFakeBucket:
Type: AWS::S3::Bucket
Condition: IsECS
Condition: HasDatabase
我希望在两个条件都为true时创建MyFakeBucket,但是在EITHER满足时创建MyFakeBucket。
答案 0 :(得分:2)
我的解决方案是创建与现有条件组合的新条件:
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