我实现了这个AWS Lambda,它接收来自slack和响应的事件以回复松弛句子,我想监视他们回答lambda的答案,以验证消息是否到达并发布。
{{1}}
我想知道如何将我的HTTPS请求(通过slack发送给我)的响应回到我的lambda?
答案 0 :(得分:1)
如果可以,请使用request / request-promise保存一些代码行。
要在Lambda函数中获取http响应,您只需在调用Lambda回调之前等待响应。
例如:
var request = require('request-promise');
exports.handler = (event, context, callback) => {
request('https://somedomain.com').then((body) => {
//got the response body
callback(null, body);
});
}
如果您使用 https 模块,那就是同样的想法。
答案 1 :(得分:1)
如果我理解正确,你想等待获得查询的结果。
在你的代码中,立即调用回调,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
}