Я написал несколько функций Lambda, которые отображаются как конечные точки Rest через API Gateway.Я выбрал «Интеграцию Lambda Proxy», поскольку это казалось простым способом начать работу.
Теперь я хочу связать воедино 2 из этих функций с помощью пошаговых функций AWS.Общая интеграция и конфигурация работают отлично, за исключением того, как создать надлежащие входные данные для каждой задачи.
Используя консоль, я могу запустить выполнение и дать следующий JSON:
{
"headers": {
"Authorization": "Bearer 12345"
},
"body": "\"some\": \"json\"",
"queryParameters: {
"more": "here"
}
}
Вот каквходные данные для моих функций Lambda выглядят так, поскольку я везде использую интеграцию Lambda Proxy.
Выходные данные выглядят примерно так:
{
"isBase64Encoded": false,
"statusCode": 200,
"headers": {
"Access-Control-Allow-Origin": "*"
},
"body": "{\"message\":\"Great\"}"
}
Это также прекрасный автономный APIШлюз отображает эту информацию обратно на правильные коды возврата HTTP и ответы и все.
Теперь: как мне создать эти входные JSON при использовании пошаговых функций.Конечно, самый первый ввод данных с помощью консоли прост.Но как мне создать следующий вход и смешать его с частью предыдущего?Некоторые из проблем в пунктах маркировки:
- Использование InputPath, ResultPath и OutputPath Я могу только использовать «целые» выходные данные предыдущего шага в качестве входных данных или части в качестве входных данных для следующего шага.Но я не могу использовать только часть выходных данных, в моем случае это элемент "body" ответа.
- Этот элемент "body" в любом случае экранирован, поэтому я думаю, что мне нужно его отключитьпрежде чем использовать его как-то для следующего ввода?Но как?
- Входной JSON должен состоять из таких элементов, как "headers", "body" или "queryParameters", которые вообще не отображаются в предыдущем выводе.Как мне их создать?
Интересно, не работают ли пошаговые функции с Lambdas, созданными для интеграции с Lambda Proxy?Это тот случай?Как люди используют пошаговые функции, не сталкиваясь с этими проблемами?