Шаг Функция: Данные не передаются на следующее событие лямбда-функции - PullRequest
0 голосов
/ 17 марта 2020

Предположим, у меня есть очень простая лямбда-функция

exports.handler = (event,ctx,callback) => {
    console.log(event);
    callback(null,{iteration:1})
};

, которая будет использоваться в шаговой машине AWS Step Function с этим определением

{
  "Comment": "A Hello World example of the Amazon States Language using Pass states",
  "StartAt": "Invoke Lambda function",
  "States": {
    "Invoke Lambda function": {
      "Type": "Task",
      "Resource": "arn:aws:states:::lambda:invoke",
      "Parameters": {
        "FunctionName": "arn:aws:lambda:ap-southeast-1:614275xxxxxx:function:sample-state-machine:$LATEST"
      },
      "Next": "Invoke Lambda function 2"
    },
    "Invoke Lambda function 2": {
      "Type": "Task",
      "Resource": "arn:aws:states:::lambda:invoke",
      "Parameters": {
        "FunctionName": "arn:aws:lambda:ap-southeast-1:614275xxxxxx:function:sample-state-machine:$LATEST"
      },
      "End": true
    }
  }
}

Однако журнал CloudWatch показывает нет данных внутри объекта события! Есть что-то очень очевидное, что я пропустил?

Для пояснения:

  • Тестирование с помощью функции тестирования консоли Lambda показывает, что {iteration: 1} правильно возвращается в качестве возврата значение лямбда-функции

  • Рассматриваемая лямбда-функция основана на nodejs .12

1 Ответ

1 голос
/ 20 марта 2020

Измените свой конечный автомат на

{
  "Comment": "A Hello World example of the Amazon States Language using Pass states",
  "StartAt": "Invoke Lambda function",
  "States": {
    "Invoke Lambda function": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-southeast-1:614275xxxxxx:function:sample-state-machine",
      "Next": "Invoke Lambda function 2"
    },
    "Invoke Lambda function 2": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-southeast-1:614275xxxxxx:function:sample-state-machine",
      "End": true
    }
  }
}

В соответствии с документацией вам нужно установить ARN непосредственно как ресурс вместо вызова лямбда-ресурса с параметром arn.

...