我尝试一起使用join,sub和importvalue时模板格式错误

时间:2017-11-09 13:32:03

标签: yaml amazon-cloudformation

我正在尝试使用join,sub和import值,但是当我尝试它时,我会收到格式错误的模板错误。

以下是我的代码部分:

 EventSourceMapping:
Type: AWS::Lambda::EventSourceMapping
Properties:
  EventSourceArn:
    !Join [ "/", [ !Select [0, !Split ["/", Fn::ImportValue: !Sub '${project}-${EnvironmentApp}-stream-arn']],Fn::ImportValue: !Sub '${project}-${EnvironmentApp}-dynamodb-name','stream','*' ] ]
  FunctionName:
    Fn::GetAtt:
    - LambdaDynamoEsConnector
    - Arn
  StartingPosition: TRIM_HORIZON

所以我得到错误:

 !Join [ "/", [ !Select [0, !Split ["/", Fn::ImportValue: !Sub '${project}-${EnvironmentApp}-stream-arn']],Fn::ImportValue: !Sub '${project}-${EnvironmentApp}-dynamodb-name','stream','*' ] ]

我在做什么有什么问题?

1 个答案:

答案 0 :(得分:2)

试试这个:

EventSourceMapping: 
  Type: "AWS::Lambda::EventSourceMapping"
  Properties: 
    EventSourceArn:
      !Join
        - "/"
        - 
          - !Select
            - 0
            - !Split
              - "/"
              - Fn::ImportValue:
                  !Sub "${project}-${EnvironmentApp}-stream-arn"
          - Fn::ImportValue:
              !Sub "${project}-${EnvironmentApp}-dynamodb-name"
          - "stream"
          - "*"

由于您未提及${project}-${EnvironmentApp}-stream-arn${project}-${EnvironmentApp}-dynamodb-name的值,我不知道您要创建的EventSourceArn是什么,但基于您的 < em>加入 条件,我相信这就是你想要实现的目标。