Конфигурация шлюза API для получения правильного тела POST в виде JSON - PullRequest
0 голосов
/ 06 октября 2019

Я борюсь за то, чтобы шлюз Lambda + API работал нормально.

Это мой код -

exports.handler = async (event) => {
    console.log("EVENT -> ", event.body)
    let buff = new Buffer(event.body, 'base64');
    let text = buff.toString('UTF-8');
    console.log("TEXT -> ",text)
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};

Я ссылался на этот ответ , но,Я не вижу Integration Request в API Gateway.

here

Что нужно сделать, чтобы получить правильный JSON? Я знаю, что могу использовать сторонние библиотеки npm. Но я предпочитаю исправить в конце AWS. Я просто хочу использовать event.body, который должен возвращать JSON.

1 Ответ

0 голосов
/ 07 октября 2019

Я буду толковать ваш вопрос так, как я его понимаю.

1 / Вы создали функцию Lambda, подключенную к шлюзу API

2 / Вы отправили некоторые данные вЛямбда-функция с использованием API-шлюза

3 / API-шлюз вызывает вашу функцию с некоторыми данными

4 / Данные, которые вы получили внутри вашей лямбда-функции, не потеряны и не повреждены. Он принимается внутри Lambda в формате Base64-Encoded

5 / Вы не хотите получать данные в Lambda в формате Base64-Encoded. Вы не хотите выполнять этап декодирования, как вы сделали

let buff = new Buffer(event.body, 'base64');
let text = buff.toString('UTF-8');

Если это так, вам нужно взглянуть на этот https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings-workflow.html

Сначала проверьте, какой заголовок Content-Type отправляет ваш запрос.

Затем,посмотрите, являются ли данные, отправленные вами на шлюз API, фактическими текстовыми данными

Кроме того, перейдите на ваш шлюз API -> Настройка -> Бинарные типы носителей, чтобы узнать, должен ли какой-либо тип данных определенно обрабатываться как шлюз API-шлюзом.

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