2017-10-12 13 views
4

私はNode.jsを使用してAWS Lambdaで遊んでいます。コールバックを処理することに飽きた後、私はC#で慣れていたのと同じように、エレガントにasync/awaitを使うことができると考えました。これは一見lambda-localを使用してオフラインでテストするときにAWSにアップロードするとき、それは無残に失敗した作品にもかかわらずAWS Lambdaでasyncキーワードを使用

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

。あたかもasyncキーワードが認識されないように見えます。ローカルバージョンが8.5の間、AWS上で最新のNode.js 6.10ランタイムを使用しています。方法がありますか、私はこのアプローチを断念し、コールバックの使用に戻るべきですか?

答えて

4

async/await機能はNode.js v7.0で起動されましたが、実験的なので--harmonyフラグの後ろにありました。 Node.js v7.6の後にはフラグなしで完全にサポートされました。

したがって、Node.js v6.10でasync/awaitを使用することはできません。

hereを参照すると、サポートされているバージョンがわかります。

4

ラムダをwebpackとbabelでバンドルすると、ノード8コードを作成し、ノード6互換コードをデプロイできます。

これを行う最も簡単な方法は、のようなプラグインでserverless frameworkを使用することです:

2

あなたはまた、あなたのコードにコンパイルすることができ活字体で、あなたのハンドラを記述することができますES5。

async/awaitはTypescriptで使用できます。

関連する問題