Шаговые функции AWS - передача ввода в другое задание - PullRequest
0 голосов
/ 11 октября 2019

Как я могу передать свой вход в мой вывод в task в AWS Step Functions?

Мне известен этот вопрос и документы:

Если значение ResultPath равно нулю, это означает, что собственный необработанный вывод состояния отбрасывается, а его необработанный ввод становится его результатом.

Но мне нужно:

  • Учитывая мой ввод
{
  "input": "my_input"
}
  • И мой лямбда-вывод
{
  "output": "my_output"
}

Мне нужно перейти к следующему состоянию следующего json:

{
  "input": "my_input",
  "output": "my_output"
}

Ответы [ 2 ]

1 голос
/ 13 октября 2019

На ум приходят два предложения: Используйте ResultPath для замены ввода на результат , что позволяет вам

Если вы не укажете ResultPath, по умолчаниюповедение такое, как если бы вы указали "ResultPath": "$". Поскольку это говорит государству о необходимости заменить весь ввод результатом, вход состояния полностью заменяется результатом, полученным из результата задачи.

Чтобы эта опция работала, лямбда-функция должна возвращать желаемый ответ:

{
  "input": "my_input",
  "output": "my_output"
}

В качестве альтернативы Использование ResultPath для включения результата со входом вруководство разработчика Step Functions. Затем, если вы измените возвращаемое значение с вашей лямбды на значение "my_output", вы можете указать "ResultPath": "$.output" для достижения желаемого результата:

{
  "input": "my_input",
  "output": "my_output"
}
0 голосов
/ 14 октября 2019

Для тех, кто приходит к этому вопросу, невозможно выполнить то, что я просил, но то, что вы можете сделать, это: в соответствии с документами :

{
  "States": {
    "my-state": {
      "Type": "task",
      "ResultPath": "$.response"
    }
  }
}

Это добавитсявсе, что лямбда возвращает в узел response, в результате:

{
  "input": "my_input",
  "response": {
    "output": "my_output"
  }
}
...