Описание: У меня есть конечный автомат Step Functions, который вызывает лямбда-функцию. Функция Lambda возвращает тело ответа JSON. Однако при выполнении конечного автомата ответ, полученный в выходных данных Step Functions, не соответствует ожидаемому.
Ожидаемое поведение: Я ожидаю, что выходные данные Step Functions будут захватить весь текст ответа, возвращаемый функцией Lambda.
Код Java:
Код: Выделить всё
public ResponseEntity fetchCertificateStatus() {
String jsonData = "{\"name\": \"John\", \"age\": 30, \"city\": \"New York\"}";
// Parse the JSON data to a Java object
Gson gson = new Gson();
Person person = gson.fromJson(jsonData, Person.class);
return ResponseEntity.ok(person);
}
Код: Выделить всё
{
"Comment": "A description of my state machine",
"StartAt": "Lambda Invoke",
"States": {
"Lambda Invoke": {
"Type": "Task",
"Resource": "arn:aws:lambda:ap-southeast-2:72806977b",
"ResultPath": "$.LambdaResponse", // Store the entire Lambda response here
"End": true
}
}
}
Код: Выделить всё
{
"LambdaResult": 200
}
Ожидаемый результат для состояния функции Step:**
Код: Выделить всё
{
"name": "John",
"age": 30,
"city": "New York"
}
Подробности о проблеме:**
- Вывод Step Functions фиксирует только код состояния (например, 200), а не весь текст ответа.
- Попытки использовать определенный [/b] значения, такие как
Код: Выделить всё
ResultPath[/b] иКод: Выделить всё
LambdaResult[/b] не дал ожидаемых результатов.Код: Выделить всё
LambdaResponseBody - Сама функция Lambda правильно возвращает тело ответа JSON при протестировано независимо с помощью таких инструментов, как Postman.
Предпринятые действия по устранению неполадок:
- Проверено, что функция Lambda функция ARN в конфигурации конечного автомата верна.
- Убедено, что функция Lambda возвращает тело ответа в ожидаемом формате JSON.
- Проверены журналы CloudWatch для выполнения функции Lambda и пошаговых функций на наличие сообщений об ошибках.
Подробнее здесь: https://stackoverflow.com/questions/785 ... -functions
Мобильная версия