【问题标题】:Template format error when I try to use join,sub and importvalue together当我尝试同时使用 join、sub 和 importvalue 时模板格式错误
【发布时间】:2018-04-22 12:38:27
【问题描述】:

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

这是我的代码部分:

 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','*' ] ]

我在做什么有什么问题?

【问题讨论】:

    标签: yaml amazon-cloudformation


    【解决方案1】:

    试试这个:

    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是什么,但基于你的加入条件,我相信这就是你想要达到的。

    【讨论】:

    • 谢谢,当我运行它时,我得到属性 EventSourceArn 的值必须是字符串类型。你有什么想法吗?
    • 您能否提供一些${project}-${EnvironmentApp}-stream-arn${project}-${EnvironmentApp}-dynamodb-name 的示例值?那么可能对我来说很容易重现。
    • 确定:test-test-stream-arn for and arn:aws:dynamodb:us-east-1:xxxxxx:table/* for ${project}-${EnvironmentApp}-dynamodb-name
    • 感谢您提供test-test-dynamodb-nameexport 价值。但对于另一个,我知道test-test-stream-arnExportName,其中${project}=test${EnvironmentApp}=test。但是它的 ExportValue 是什么?给我一个您尝试导出的示例流 arn 值。还要提及您要创建的最终EventSourceArn 是什么。
    • 所以如果我理解你的问题是导出的值:arn:aws:dynamodb:us-east-1:accountid:table/stg6-dynamodb-table-search/stream/2017-11- 09T20:01:28.145希望我回答正确
    猜你喜欢
    • 2021-07-13
    • 2020-03-08
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多