Javascript AWS Lambda在请求后获取https响应

Javascript AWS Lambda在请求后获取https响应,javascript,amazon-web-services,aws-lambda,Javascript,Amazon Web Services,Aws Lambda,我实现了这个AWS Lambda,它接收slack的事件,并对slack的句子进行响应,我想监控它们对Lambda的响应,以验证消息是否到达并发布 // Lambda handler exports.handler = (data, context, callback) => { switch (data.type) { case "url_verification": verify(data, callback); break; case "eve

我实现了这个AWS Lambda,它接收slack的事件,并对slack的句子进行响应,我想监控它们对Lambda的响应,以验证消息是否到达并发布

// Lambda handler
exports.handler = (data, context, callback) => {
    switch (data.type) {
        case "url_verification": verify(data, callback); break;
        case "event_callback": process(data.event, callback); break;
        default: callback(null);
    }
};

// Post message to Slack - https://api.slack.com/methods/chat.postMessage
function process(event, callback) {
    // test the message for a match and not a bot
    if (!event.bot_id && /(aws|lambda)/ig.test(event.text)) {
        var text = `<@${event.user}> isn't AWS Lambda awesome?`;
        var message = { 
            token: ACCESS_TOKEN,
            channel: event.channel,
            text: text
        };

        var query = qs.stringify(message); // prepare the querystring
        https.get(`https://slack.com/api/chat.postMessage?${query}`);
    }

    callback(null);
}
//Lambda处理程序
exports.handler=(数据、上下文、回调)=>{
开关(数据类型){
案例“url_验证”:验证(数据、回调);中断;
案例“事件回调”:进程(data.event,回调);中断;
默认值:回调(null);
}
};
//向Slack发布消息-https://api.slack.com/methods/chat.postMessage
函数进程(事件、回调){
//测试消息是否匹配,而不是bot
如果(!event.bot_id&/(aws|lambda)/ig.test(event.text)){
var text=`AWS Lambda不是很棒吗?`;
var消息={
令牌:访问令牌,
频道:event.channel,
文本:文本
};
var query=qs.stringify(message);//准备查询字符串
https.get(`https://slack.com/api/chat.postMessage?${query}`);
}
回调(空);
}
我想知道如何将我的HTTPS请求(通过slack发送给我)的响应返回到我的lambda?

如果可以,请使用/保存一些代码行

要在Lambda函数中获得http响应,只需在调用Lambda回调之前等待响应

例如:


若您使用的是https模块,这是相同的想法。

若我理解正确,您希望等待get查询的结果

在您的代码中,回调被立即调用,lambda完成其执行。 为了能够等待响应,您需要从代码中的当前位置删除回调,并在执行请求后调用它

// Post message to Slack - https://api.slack.com/methods/chat.postMessage
function process(event, callback) {
    // test the message for a match and not a bot
    if (!event.bot_id && /(aws|lambda)/ig.test(event.text)) {
        var text = `<@${event.user}> isn't AWS Lambda awesome?`;
        var message = { 
            token: ACCESS_TOKEN,
            channel: event.channel,
            text: text
        };

        var query = qs.stringify(message); // prepare the querystring
        https.get(`https://slack.com/api/chat.postMessage?${query}`, (res, err) => {
            if (err) return callback(err);
            callback(null);
        })
    }

    // callback was here
}
//将消息发布到Slack-https://api.slack.com/methods/chat.postMessage
函数进程(事件、回调){
//测试消息是否匹配,而不是bot
如果(!event.bot_id&/(aws|lambda)/ig.test(event.text)){
var text=`AWS Lambda不是很棒吗?`;
var消息={
令牌:访问令牌,
频道:event.channel,
文本:文本
};
var query=qs.stringify(message);//准备查询字符串
https.get(`https://slack.com/api/chat.postMessage?${query}`,(res,err)=>{
if(err)返回回调(err);
回调(空);
})
}
//我在这里
}

谢谢,但我无法使用请求承诺。
// Post message to Slack - https://api.slack.com/methods/chat.postMessage
function process(event, callback) {
    // test the message for a match and not a bot
    if (!event.bot_id && /(aws|lambda)/ig.test(event.text)) {
        var text = `<@${event.user}> isn't AWS Lambda awesome?`;
        var message = { 
            token: ACCESS_TOKEN,
            channel: event.channel,
            text: text
        };

        var query = qs.stringify(message); // prepare the querystring
        https.get(`https://slack.com/api/chat.postMessage?${query}`, (res, err) => {
            if (err) return callback(err);
            callback(null);
        })
    }

    // callback was here
}