如何在AWS Lambda的http发布请求中添加JSON数据?

时间:2019-05-02 12:34:55

标签: node.js http aws-lambda http-post

const http = require('http');

exports.handler = function(event, context) {
   var url = event && event.url;
    http.post(url, function(res) {
    context.succeed();
  }).on('error', function(e) {
    context.done(null, 'FAILURE');
  });

};

我在AWS lambda代码中使用此命令发送http请求。

我有一个JSON文件,该文件必须作为此发布请求的一部分发送。 如何添加JSON?我在哪里指定?

1 个答案:

答案 0 :(得分:0)

如果您要从哪里获取该json文件格式,那么s3将是放置该文件并从lambda中读取内容并进行发布的正确位置。

const obj= {'msg': [
{
  "firstName": "test",
  "lastName": "user1"
},
{
  "firstName": "test",
  "lastName": "user2"
}
]};

request.post({
  url: 'your website.com',
  body: obj,
  json: true
}, function(error, response, body){
console.log(body);
});

http

const postData = querystring.stringify({
  'msg': 'Hello World!'
});

const options = {
  hostname: 'www.google.com',
  port: 80,
  path: '/upload',
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length': Buffer.byteLength(postData)
  }
};

const req = http.request(options, (res) => {
  console.log(`STATUS: ${res.statusCode}`);
  console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
  res.setEncoding('utf8');
  res.on('data', (chunk) => {
    console.log(`BODY: ${chunk}`);
  });
  res.on('end', () => {
    console.log('No more data in response.');
  });
});

req.on('error', (e) => {
  console.error(`problem with request: ${e.message}`);
});

// Write data to request body
req.write(postData);
req.end();