Я пытаюсь создать простую пошаговую функцию, состоящую из двух лямбда-функций.Первая лямбда-функция принимает два числа в качестве ввода от пользователя (скажем, num1 = 2, num2 = 5) и передает сумму двух чисел во вторую лямбда-функцию.Вторая лямбда-функция умножает вывод первой лямбда-функции на постоянную (скажем, 10).
Я хочу иметь возможность получить окончательный ответ (который (2 + 5) * 10 = 70) вв этом случае) в качестве результата вызова API.
Я могу успешно выполнить функцию шага (из консоли функции шага AWS).Но вывод, который я получаю при вызове API (интегрированный с функцией Step), не является числом, а выглядит следующим образом:
{
"executionArn": "arn:aws:states:ap-south-1:123456789012:execution:Test_Math:xxx",
"startDate": 1560344276.117
}
Как получить вызов API для возврата ответа (который является числом70 в данном случае)?
Я уже прошел через документацию AWS и AWS API Gateway с функцией шага этот вопрос, но мне все еще не ясно.
- Как я могу создать новую лямбда-функцию (или использовать любую из двух вышеупомянутых), которая вызывает / выполняет эту функцию шага для возврата ответа?
- Существуют ли другие способы возврата ответа шагафункция через вызов API?
Мой вопрос чем-то похож на этот Шлюз API получает выходные данные из пошаговой функции? .Я попытался добавить второй метод в API Gateway, который вызовет функцию шага с действием DescribeExecution, но он не работает.
Шаблон отображения (application / json) для метода POST с действием StartExecution выглядит следующим образом:
#set($inputRoot = $input.path('$'))
#set($data = $util.escapeJavaScript($input.json('$')))
{
"input": "{ \"num1\": $inputRoot.num1, \"num2\": $inputRoot.num2 }",
"stateMachineArn": "arn:aws:states:ap-south 1:998338******:stateMachine:Test_Math"
}
Я создал новый метод GET с действием DescribeExecution со следующими деталями запроса на интеграцию:
Integration type: AWS Service
AWS Service: Step Functions
HTTP method: GET
Action: Describe Execution
Content Handling: Passthrough
Mapping template : application/json
#set($inputRoot = $input.path('$'))
#set($data = $util.escapeJavaScript($input.json('$')))
{
"executionArn": "arn:aws:states:ap-south-1:998338321653:execution:Test_Math:3981114a-da51-411d-9533-8571dc976e2d",
"input": "{ \"num1\": $inputRoot.num1, \"num2\": $inputRoot.num2 }"
}
Пожалуйста, дайте мне знать, какие изменения мне нужно внести в вышеуказанное, чтобы иметь возможность вернуть ответ (70) с помощью вызова API.
PS: я хочу развернуть свое машинное обучениемодель с использованием пошаговых функций, и это всего лишь простой тест, который я пробовал.