CloudFormation!选择等于

时间:2019-03-20 00:37:06

标签: amazon-cloudformation

我有类似条件

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::EqualsFn::Or

     
      
  • Fn::FindInMap
  •   
  • Ref
  •   
  • 其他条件函数
  •   

我可以还是应该信任我成功的模板,而忽略文档?还是我可能依赖错误或意外行为?

是否有另一种与文档兼容的方式来做我想做的事情?

0 个答案:

没有答案