Amazon cloudformation 云层形成!选择内!等于
我有这样的条件Amazon cloudformation 云层形成!选择内!等于,amazon-cloudformation,Amazon Cloudformation,我有这样的条件 Conditions: IsSqs: !Equals - !Select [2, !Split [':', !Ref EventSourceArn]] - "sqs" IsDynamo: !Equals - !Select [2, !Split [':', !Ref EventSourceArn]] - "dynamodb" 用于创建以下资源: EventSourceMappingForSqs: Type: AWS::Lamb
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
的值创建的。i、 e.当我进入SQS队列ARN时,我得到了EventSourceMappingForSqs
但是,他们说我使用了!在中选择!不支持等于
:
您可以在所有其他条件函数中使用以下函数,
例如Fn::Equals
和Fn::Or
:
Fn::FindInMap
Ref
- 其他条件函数
我可以或者应该信任我成功的模板,而忽略文档吗?或者我可能依赖于一个bug或意外行为
有没有一种替代的、符合文档要求的方法来做我想做的事情?我认为你是安全的。我看不出任何逻辑上的理由来解释为什么它们不应该是合法的。另一种选择可能是使用自定义资源
来创建资源,但我不认为这是一种好的选择。我认为您是安全的。我看不出任何逻辑上的理由来解释为什么它们不应该是合法的。另一种方法可能是使用自定义资源
来创建资源,但我不认为这是一种好的方法。