Как я могу отправить простой GET на URL и увидеть ответ обратно в Lambda? - PullRequest
2 голосов
/ 08 мая 2019

Я пытаюсь отправить простой запрос GET на URL и получить ответ обратно.Я нашел ниже код, который работает, но он отображает только Успех, но я хотел бы увидеть ответ.Примерно так с помощью curl:

curl -X GET http://www.some.url.com

    const http = require('http');
exports.handler = async (event, context) => {
    return new Promise((resolve, reject) => {
        const options = {
            host: 'jsonplaceholder.typicode.com',
            path: '/posts/1/',
            port: 80,
            method: 'GET'
        };
        const req = http.request(options, (res) => {
          resolve('Success');
        });
        req.on('error', (e) => {
          reject(e.message);
        });
        // send the request
        req.write('');
        req.end();
    });
};

Ответы [ 2 ]

1 голос
/ 08 мая 2019

Есть хорошая запись , в которой рассказывается о том, как подключить SSH к AWS Lambda, и для этого используется сервис httpbin.

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

Следующий пример использует лямбду AWS, написанную в Node.JS, для захвата текущего IP-адреса лямбды:

var http = require('http');

exports.handler = function(event, context) {
    http.get('http://httpbin.org/get', function(res) {
        var body = '';
        res.on('data', function(chunk) {
            body += chunk;
        });

        res.on('end', function() {
            console.info(body);
            context.done(null);
        });
    }).on('error', function(e) {
        console.error(e.message);
        context.fail(null);
    });
};
0 голосов
/ 08 мая 2019

Для вашего приложения Node.JS AWS Cloudwatch регистрирует консольную информацию для функции Lambda.Вы можете использовать console.log () с примером запроса, например, так:

    const http = require('http');
exports.handler = async (event, context) => {
    return new Promise((resolve, reject) => {
        const options = {
            host: 'jsonplaceholder.typicode.com',
            path: '/posts/1/',
            port: 80,
            method: 'GET'
        };
        const req = http.request(options, (res) => {
          let data = '';

          // A chunk of data has been recieved.
          res.on('data', (chunk) => {
            data += chunk;
          });

          // The whole response has been received. Print out the result.
          res.on('end', () => {
            console.log(JSON.parse(data));
            });

        });
        req.write('');
        req.end();
    });
};

Вывод будет отображаться, например:

Function Logs:
START RequestId: ... Version: $LATEST
2019-05-08T10:35:11.650Z    ... { userId: 1,
  id: 1,
  title: 'sunt aut facere repellat provident occaecati excepturi optio reprehenderit',
  body: 'quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto' }
END RequestId: ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...