AWS RDS, Lambda, API Gateway - данные не возвращаются в API Gateway - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь запросить некоторые данные из экземпляра AWS RDS Mysql, обработать их и вернуть через API-шлюз. Мой общий поток процесса: API Gateway -> Lambda -> RDS MySql

Мой код следует следующим logi c:

const AWS = require('aws-sdk');
const mysql = require('mysql');
const connection = mysql.createPool({

    host: process.env.RDS_LAMBDA_HOSTNAME,
    user: process.env.RDS_LAMBDA_USERNAME,
    password: process.env.RDS_LAMBDA_PASSWORD,
    port: process.env.RDS_LAMBDA_PORT,

});

exports.handler = (event, context,callback) => {

    var sql_query = 'SELECT * from Table';

    connection.query(sql_query, function (err, result) {
            if (err) {
                console.log("Error->" + err);
            }
            else
            {
                result = do_some_processing(result);

                var response = {
                statusCode: 200,
                body: result };

                connection.end();
                callback(null,result);
            }
    });
};

Фактический sql_query немного более сложный и должен быть сформирован вот так.

Я добавил несколько операторов console.log (), чтобы убедиться, что объект ответа формируется и печатается правильно. При тестировании функции лямбда я вижу правильный ответ. Однако при запуске той же функции из API Gateway я не получаю обратно никаких данных.

Следуя различным инструкциям в Интернете, я дал все возможные разрешения, необходимые для этого (роль VP C, роль RDS и т. Д. c.).

Кроме того, я пытался сохранить Лямбда и RDS в одной группе безопасности, а также в разных группах безопасности. Результаты остаются прежними.

Это кажется довольно простым вариантом использования, но я не могу получить никакого ответа.

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