我有类似条件
Conditions:
IsSqs: !Equals
- !Select [2, !Split [':', !Ref EventSourceArn]]
- "sqs"
IsDynamo: !Equals
- !Select [2, !Split [':', !Ref EventSourceArn]]
- "dynamodb"
用于创建类似资源
EventSourceMappingForSqs:
Type: AWS::Lambda::EventSourceMapping
Condition: IsSqs
Properties:
EventSourceArn: !Ref EventSourceArn
# snip
EventSourceMappingForDynamo:
Type: AWS::Lambda::EventSourceMapping
Condition: IsDynamo
Properties:
EventSourceArn: !Ref EventSourceArn
# snip
我能够成功运行周围的模板,并且可以看到根据EventSourceMapping
的值创建了正确的EventSourceArn
。即当我传递SQS队列ARN时得到EventSourceMappingForSqs
。
但是,CloudFormation docs说我在!Select
中使用!Equals
不受支持:
您可以在所有其他条件功能中使用以下功能, 例如
Fn::Equals
和Fn::Or
:
Fn::FindInMap
Ref
- 其他条件函数
我可以还是应该信任我成功的模板,而忽略文档?还是我可能依赖错误或意外行为?
是否有另一种与文档兼容的方式来做我想做的事情?