栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么此HTTP请求在AWS Lambda上不起作用?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么此HTTP请求在AWS Lambda上不起作用?

当然,我误会了这个问题。正如AWS自己所说的那样:

对于那些在Lambda中首次遇到nodejs的人来说,一个常见的错误是忘记了回调是异步执行的,而

context.done()
当您确实要等待另一个回调(例如S3.PUT操作)完成时,则调用
原始处理程序,从而强制执行该函数因工作不完整而终止。

context.done
在请求的任何回调被触发之前,我正在调用way,导致我的函数提前终止。

工作代码是这样的:

var http = require('http');exports.handler = function(event, context) {  console.log('start request to ' + event.url)  http.get(event.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 ' + event.url);}

更新: 从2017年开始,AWS已弃用旧的Nodejs
0.10,现在仅提供新的4.3运行时(应更新旧功能)。该运行时对处理程序函数进行了一些更改。现在,新处理程序具有3个参数。

function(event, context, callback)

虽然你仍然会发现

succeed
done
fail
上下文参数,AWS建议使用的
callback
功能,而不是或
null
默认情况下返回。

callback(new Error('failure')) // to return errorcallback(null, 'success msg') // to return ok

完整的文档可以在http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-
handler.html中找到



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/371437.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号