Я пытаюсь обработать ответ от шлюза API -> Лямбда -> Обмен шлюза API, и я не могу правильно обработать ответ интеграции.
У меня 2 ответа интеграции шлюза API определяется с использованием следующих регулярных выражений лямбда-ошибок:
.*e.* -> method response status 200 (for testing only)
.*500.* -> method response status 500
(no default mapping)
Моя лямбда возвращает следующее:
if (err)
callback(null, {
statusCode: 500,
message: "commit ID failed - ID already present"
});
else
callback(null, {
statusCode: 200,
message: "new ID committed"
});
Таким образом, ответ от Lambda всегда должен содержать какие-то данные.
Когда я запускаю тест шлюза API, он не выполняет ни одно из правил:
Sat Jun 20 07:49:56 UTC 2020 : Received response. Status: 200, Integration latency: 122 ms
Sat Jun 20 07:49:56 UTC 2020 : Endpoint response headers: {Date=Sat, 20 Jun 2020 07:49:56 GMT, Content-Type=application/json, Content-Length=68, Connection=keep-alive, x-amzn-RequestId=d7556a95-2ff9-4cf2-9e61-cc89484f6548, x-amzn-Remapped-Content-Length=0, X-Amz-Executed-Version=$LATEST, X-Amzn-Trace-Id=root=1-5eedbfa4-0ddb3f5e0882fbf1cd7e4674;sampled=0}
Sat Jun 20 07:49:56 UTC 2020 : Endpoint response body before transformations: {"statusCode":500,"message":"commit ID failed - ID already present"}
Sat Jun 20 07:49:56 UTC 2020 : Execution failed due to configuration error: No match for output mapping and no default output mapping configured. Endpoint Response Status Code: 200
Если я изменяю регулярные выражения лямбда-ошибок:
.* matches responses from lambda
.+ doesn't match any responses from lambda
, я думаю, это говорит о том, что Поле, переданное в обработку регулярного выражения ошибки лямбда, пусто - я прав, и если да, как мне установить для него значение в ответе лямбда?
заранее спасибо,
Джим