Использование Ref для функции Resource in Step внутри шаблона облачной информации

У меня есть пошаговая функция внутри облачной информации. Стек облачной информации также создает лямбды, которые я буду использовать в качестве ресурса в пошаговой функции. У меня есть что-то вроде

TestLambda:
  Type: "AWS::Lambda::Function"
  Properties:
    Handler: "test_lambda.lambda_handler"
    Role: "arn:aws:iam::1234342334:role/Lambda"
    Code:
      ZipFile: !Sub |
        from __future__ import print_function
        import boto3
        def lambda_handler(event, context):
          print(event)
    Runtime: "python2.7"

  ....

TestStateMachine:
  Type: AWS::StepFunctions::StateMachine
  Properties:
    StateMachineName: "Test"
    DefinitionString: |-
      {
        "StartAt": "State1",
        "States": {
          "State1" : {
            "Type" : "Task",
            "Resource" : "${!GetAtt TestLambda.Arn}",
            "Next": "State2?"
          },
      ... 
      ...

все внутри одного облачного шаблона.

"SCHEMA_VALIDATION_FAILED: Value is not a valid resource ARN"

Я тоже пробовал! GetAtt TestLambda.Arn, не сработало. Я хочу, чтобы лямбда и пошаговая функция были созданы в едином шаблоне облачной информации. Пожалуйста, дайте мне знать, если есть лучший и более чистый способ сделать это.

Спасибо


person Anandan    schedule 10.08.2018    source источник


Ответы (1)


Вам следует использовать Fn :: Sub функция для этого:

TestStateMachine:
  Type: AWS::StepFunctions::StateMachine
  Properties:
    StateMachineName: "Test"
    DefinitionString: 
      Fn::Sub:
        |-
          {
            "StartAt": "State1",
            "States": {
              "State1" : {
                "Type" : "Task",
                "Resource" : "${TestLambda.Arn}",
                "Next": "State2?"
          },
person Orest    schedule 11.08.2018