2017-10-12 4 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 이후에 플래그없이 완전히 지원되었습니다.

따라서 async/await을 Node.js v6.10과 함께 사용할 수 없습니다.

here을 보면 정확히 지원되는 버전을 알 수 있습니다.

4

webpack 및 babel을 사용하여 람다를 번들링하여 노드 8 코드를 작성하고 노드 6 호환 코드를 배포 할 수 있습니다. 당신은 또한 당신의 코드를 컴파일 할 수 있습니다 타이프에서 핸들러를 작성할 수

2

:

이 작업을 수행하는 가장 쉬운 방법은 같은 플러그인으로 serverless framework을 사용하는 것입니다 ES5.

async/await을 Typescript와 함께 사용할 수 있습니다.

관련 문제