Шлюз API не вызывает конечную точку чаши

Я пытаюсь открыть очень простую конечную точку с помощью chalice и развернуть ее на AWS Lambda (хотя и не используя Chalice CLI). Затем я создаю соответствующую лямбда-функцию aws, архивируя код и загружая его. Затем я создаю API-шлюз вручную и указываю его на Lambda, как бы я ни старался, я не могу заставить Lambda API вызываться.

Код Python

from chalice import Chalice, Response, BadRequestError, ChaliceViewError, NotFoundError
app = Chalice(app_name='test-app')
@app.route('/test', methods=['GET'])
def hello_world():
    return {
        "hello world"
    }

Маршрут шлюза API

введите здесь описание изображения

Выход

url: https://lw751abcd.execute-api.us-east-1.amazonaws.com/test
{"Code":"InternalServerError","Message":"Unknown request."}

Что мне здесь не хватает?

ОБНОВИТЬ

обновил мой код ниже, но все еще не работает.

@app.route('/test/{proxy+}', methods=['GET'])
def hello_world():
    return {
    "isBase64Encoded": true,
    "statusCode": 200,
    "headers": { "status": "200"},
    "multiValueHeaders": { },
    "body": {
        "hello world"
    }
}

person Naxi    schedule 27.05.2020    source источник
comment
Если вы используете интеграцию прокси для лямбда, вы должны использовать следующий вывод: формат.   -  person Marcin    schedule 28.05.2020
comment
@Marcin Я обновил свой выходной ответ, но он все еще не работает. Пожалуйста, смотрите обновление в посте.   -  person Naxi    schedule 28.05.2020


Ответы (1)


Проблема заключалась в том, что при создании API-шлюза я выбирал HTTP вместо REST в качестве типа. С типом API REST все работало, как и ожидалось, и мне не нужно было беспокоиться о теле запроса и ответа.

person Naxi    schedule 28.05.2020