AWS API Gateway Лямбда-ошибка Regex - PullRequest
0 голосов
/ 03 мая 2018

У меня есть лямбда-функция, написанная на Python 2.7, которая запускается из API Gateway,

Я хочу, чтобы API-шлюз возвращал 400 кодов при сбое Lambda, и я не хочу использовать Lambda Proxy, поэтому я пытаюсь настроить отклик интеграции API-шлюза.

Если лямбда-функция не работает, она возвращает:

{
    "stackTrace": [
        [
            "/var/task/lambda_function.py",
            12,
            "lambda_handler",
            "raise Exception('failure')"
        ]
    ],
    "errorType": "Exception",
    "errorMessage": "failure"
}

Шаблон лямбда-ошибок Regex и Body Mapping: enter image description here

.. то же самое из CLI:

aws apigateway get-integration-response --rest-api-id bz47krygwa --resource-id 788q0w --http-method ANY --status-code 400 --region us-west-1
{
    "statusCode": "400",
    "selectionPattern": ".*\"failure\".*",
    "responseTemplates": {
        "application/json": "#set($inputRoot = $input.path('$.errorMessage'))\n$inputRoot"
    }
}

.. но это не работает правильно и все еще возвращает 200 кодов: enter image description here

любой совет по починке, пожалуйста?

1 Ответ

0 голосов
/ 03 мая 2018

Ответ оказался очень простым - удаление двойных кавычек из Lambda Error Regex добилось цели,

Кроме того, шаблон Body Mapping также может быть удален: enter image description here

.. и работает как положено: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...