在AWS Lambda中使用async关键字

wpf*_*abe 5 javascript amazon-web-services node.js aws-lambda

我正在使用Node.js与AWS Lambda一起玩.在厌倦了必须处理回调之后,我认为我可以优雅地使用async/await,就像我习惯于在C#中一样.

exports.handler = async(event, context, callback) => {
    db = await MongoClient.connect(process.env['MONGODB_URI']);
}
Run Code Online (Sandbox Code Playgroud)

即使这在使用离线测试时似乎有效lambda-local,但在上传到AWS 时也会失败.看起来好像async无法识别关键字.我在AWS上使用最新的Node.js 6.10运行时,而我的本地版本是8.5.有办法还是我应该放弃这种方法并重新使用回调?

Jyo*_*ngh 6

async/await功能是在Node.js v7.0中启动的,但--harmony由于它是实验性的,因此在旗帜后面.在Node.js v7.6之后没有标志完全支持它.

因此,您不能async/await与Node.js v6.10一起使用.

在这里查看确切支持哪些版本.


Gab*_*leu 5

您可以将lambda与webpack和babel捆绑在一起,编写节点8代码并部署节点6兼容代码.

最简单的方法是使用无服务器框架和插件,如: