AWS лямбда http сообщение не удалось отправить запрос - PullRequest
0 голосов
/ 13 мая 2019
const http = require('http');

exports.handler = function (event, context, callback) {
console.log(event);
var data = {
    'name': 'test'
};
var url = "http://**************.com";
function sendFileToUrl(url, data, context, callback) {
    console.log('Sending File to the URL:' + url);
    if (url && data && context) {
        if (context) {
            setInterval(function () { }, 1000);
            context.callbackWaitsForEmptyEventLoop = false;
        }
        return http.post(url, JSON.stringify(data)).then(function (res) {
            console.log("Data Sent & response: " + res.statusCode);
            callback(null, 'success msg');
        }).on('error', function (e) {
            console.log("Could not send the data & error: " + e.message);
            callback(new Error('failure'));
        });
    }
}
return sendFileToUrl(url, data, context, callback);

};

Я пытаюсь сделать http-запрос от лямбды. Отправка данных на указанный URL. Но он асинхронный и дает нулевое ответное сообщение Не печатается сообщение «Данные отправлены». Как это сделать? Заранее спасибо

1 Ответ

0 голосов
/ 13 мая 2019

Попробуйте изменить код следующим образом:

const http = require('http');

exports.handler = function (event, context, callback) {
    console.log(event);
    var data = JSON.stringify({
        'name': 'test'
    });    
    const options = {
      hostname: 'example.com',
      path: '/path-to-resource',
      port: 80,
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Content-Length': data.length
      }
    };

    function sendFileToUrl(options, data, callback) {
        console.log('Sending File to the URL:' + url);
        if (url && data) {
            const req = http.request(url, JSON.stringify(data)).then(function (res) {
                console.log("Data Sent & response: " + res.statusCode);
                callback(null, 'success msg');
            });            
            req.on('error', function (e) {
                console.log("Could not send the data & error: " + e.message);
                callback(new Error('failure'));
            });            
            req.write(data);
            req.end();
        }
    }
    sendFileToUrl(options, data, callback);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...