Aws lambda 三个lambda函数定义的差异(handler.js)
我在handler.js中看到了不同的骨架函数定义示例。在Aws lambda 三个lambda函数定义的差异(handler.js),aws-lambda,serverless-framework,Aws Lambda,Serverless Framework,我在handler.js中看到了不同的骨架函数定义示例。在handler.js中 版本1:module.exports.handler=async(事件、上下文)=>{…} 版本2:module.exports.store=async event=>{…} 版本3:module.exports.store=(事件、上下文、回调)=>{…} 版本1和版本2的相似之处在于它们都被定义为异步函数,唯一的区别是参数的数量,但是为什么版本2可以完全忽略上下文?我假设API网关无论如何都会将上下文参数传递给
handler.js中
版本1:module.exports.handler=async(事件、上下文)=>{…}
李>
版本2:module.exports.store=async event=>{…}
版本3:module.exports.store=(事件、上下文、回调)=>{…}
版本1和版本2的相似之处在于它们都被定义为异步函数,唯一的区别是参数的数量,但是为什么版本2可以完全忽略上下文?我假设API网关无论如何都会将上下文参数传递给lambda函数,lambda函数怎么能不定义参数呢?(这不会在lambda调用期间导致运行时错误吗?)
版本3是在一个完全不同的范例中定义的,即不是一个异步函数,我认为这是一个旧版本的无服务器框架生成的框架函数
有人能给我一些指导吗?版本1/2和版本3的主要区别在于JS语法。版本1/2使用更现代的async/await
语法。版本3较旧,并且使用回调。您可以在此处了解更多差异:
正如您所指出的,版本1和版本2之间的唯一区别是上下文
对象。这是由AWS提供的,包括有用的lambda特定属性和方法,如getRemainingTimeInMillis()
,它告诉您函数可以执行多长时间
您可以在此处阅读更多有关内容:
我得说,现在大多数人都在使用版本1