首页 > 解决方案 > 在 AWS lambda 上设置 https 代码使用 NodeJS

问题描述

我需要帮助。当我在 lambda 上构建 Http 代码时,我无法将值存储到数据库中。

我已经设置了使用 SQS-poller 构建的 AWS lambda 函数。所以我用这个在 lambda 上的 index.js 文件上构建代码

const http = require('http');
var fs = require('fs');

 exports.handler = async (event) => { 
    let postData = JSON.stringify(event);

    var options = {
      'method': 'POST',
      'hostname': 'mylink.com',
      'path': '/index.php?route=report',
      'headers': {
        'Content-Type': 'application/json'
      }
    };
    
    var req = http.request(options, function (res) {
      var chunks = [];
    
      res.on("data", function (chunk) {
        chunks.push(chunk);
      });
    
      res.on("end", function (chunk) {
        var body = Buffer.concat(chunks);
        console.log(body.toString());
      });
    
      res.on("error", function (error) {
        console.error(error);
      });
    });
    
    req.write(postData);
    
    req.end();
    console.log(postData);
};

价值let postData = JSON.stringify(event);是这个

{
    "Records": [
        {
            "messageId": "1123",
            "receiptHandle": "MessageReceiptHandle",
            "body": "Hello from SQS!", 
            .......
        }
    ]
}

我只想存储这个"body": "Hello from SQS!",

所以在我的终点网址中,http://mylink.com/index.php?route=report我构建了一个像这样的简单代码

    public function report(){ 
        $dataJson = file_get_contents('php://input');
        $decode = json_decode($dataJson, true); 
        $this->db->query("INSERT INTO report_data (report_id, text, date_added) VALUES (NULL, '".$decode['Records'][0]['body']."', current_timestamp())");
    }

但来自的值"body": "Hello from SQS!", 不会存储到我的数据库中。report_data它可以在表格上创建一个带有空文本的新行。

我已经调查过,没有发现任何错误。

请帮我。我需要将值存储Hello from SQS!到表中report_data

标签: node.jshttpaws-lambda

解决方案


推荐阅读