node.js – 如何使用nodejs AWS Lambda发送http请求?

我正在使用AWS Lambda来开发Alexa Skill Kit开发.在尝试跟踪事件时,我希望脚本在启动时发送HTTP请求,但是从云日志中看起来好像在执行过程中跳过了http.get函数.

代码如下所示(google.com取代了分析跟踪网址 – 已在浏览器中测试过);

 

exports.handler = function (event, context) {

    var skill = new WiseGuySkill();
    var http = require('http');

    var url = 'http://www.google.com';
    console.log('start request to ' + url)
    http.get(url, function(res) {
        console.log("Got response: " + res.statusCode);
        // context.succeed();
    }).on('error', function(e) {
        console.log("Got error: " + e.message);
        // context.done(null, 'FAILURE');
    });
    console.log('end request to ' + url);

    skill.execute(event, context);
};

上下文对象已被注释掉以允许’skill.execute’运行,但这种HTTP请求的任何一种方式都没有执行.只记录’start’和’end’console.logs,函数内部没有.

这是一个异步问题吗?谢谢.

最佳答案 您需要确保触发处理程序.有两种方法可以实现此目的:

>您可以设置新的API端点并对其执行请求.
>您可以点击“测试”按钮,并使用给定数据调用您的函数.

我复制并粘贴了你的整个代码片段,除了第一行和最后一行(因为我没有在任何地方定义customSkill).我能够获得200响应代码.

点赞