在AWS Lambda中使用async关键字
我正在使用Node.js使用AWS Lambda。 在厌倦了处理callback之后,我想我可以优雅地使用async/await
,就像我在C#中习惯的那样。
exports.handler = async(event, context, callback) => { db = await MongoClient.connect(process.env['MONGODB_URI']); }
尽pipe在使用lambda-local
进行离线testing时这看起来很有效,但是当上传到AWS时却失败了。 它看起来好像async
关键字不被识别。 我在AWS上使用最新的Node.js 6.10运行时,而本地版本是8.5。 有没有办法,或者我应该放弃这种方法,并回到使用callback?
async/await
function是在Node.js v7.0中启动的,但是在--harmony
标志后面,因为它是实验性的。 完全支持Node.js v7.6之后没有标志。
因此,您不能使用Node.js v6.10的async/await
。
看看这里确切地知道支持哪些版本。
你可以绑定你的lambda与webpack和babel写节点8代码和部署节点6兼容的代码。
最简单的方法是使用无服务器框架 ,插件如下:
- 无服务器-的WebPack
- 无服务器-ES7
你也可以在Typescript中编写你的处理程序,它可以将你的代码编译成ES5。
您可以使用Typescript进行async/await
。