首页 > 解决方案 > 从 nodejs 中的 aws lambda 调用在 localhost 上运行的 api

问题描述

我在http://localhost:80/api/test上运行一个 api ,我想从 lambda 函数调用这个 api,但我不确定我应该使用什么插件或任何东西来访问它。这样做的原因是, 我想在开发阶段测试 lambda 和 api

标签: node.jsaws-lambdalocalhostaws-serverlessserverless-plugins

解决方案


我使用https://ngrok.com/来解决它。

以下是localhosthttps 网址的命令。您可以3000用您的端口号替换端口号。

ngrok http https://localhost:3000 -host-header="localhost:3000"

下面是我的 Lambda 函数:

var https = require('https');

exports.testJob = (event, context, callback) => {
var params = {
    host: "90abcdef.ngrok.io",
    path: "/api/test"

};

var req = https.request(params, function(res) {
    let data = '';
    console.log('STATUS: ' + res.statusCode);
    res.setEncoding('utf8');
    res.on('data', function(chunk) {
        data += chunk;
    });
    res.on('end', function() {
        console.log("DONE");
        console.log(JSON.parse(data));
        });
    });
    req.end();
};

推荐阅读