AWS Lambda
개발자 가이드

Node.js를 사용하여 Lambda 함수 빌드

AWS Lambda에서 JavaScript code with Node.js 을 실행할 수 있습니다. Lambda은 이벤트 처리를 위해 코드를 실행하는 에 대한 런타임을 제공합니다. 코드는 사용자가 관리하는 AWS Identity and Access Management(IAM) 역할의 자격 증명을 사용하여 AWS SDK for JavaScript이 포함된 환경에서 실행됩니다.

Lambda는 다음과 같은 Node.js 실행 시간을 지원합니다.

Node.js 런타임

이름 식별자 Node.js 버전 JavaScript용 AWS SDK 운영 체제

Node.js 10

nodejs10.x

10.16.3

2.488.0

Amazon Linux 2

Node.js 8.10

nodejs8.10

8.10

2.488.0

Amazon Linux

Lambda 함수는 실행 역할을 사용하여 Amazon CloudWatch Logs에 로그를 쓰고 다른 서비스 및 리소스에 액세스할 수 있는 권한을 얻습니다. 함수 개발을 위한 실행 역할이 아직 없다면 이 역할을 하나 생성합니다.

실행 역할을 만들려면

  1. IAM 콘솔에서 역할 페이지를 엽니다.

  2. 역할 생성을 선택합니다.

  3. 다음 속성을 사용하여 역할을 만듭니다.

    • 신뢰할 수 있는 엔터티Lambda.

    • 권한AWSLambdaBasicExecutionRole.

    • 역할 이름lambda-role.

    AWSLambdaBasicExecutionRole 정책은 함수가 CloudWatch Logs에 로그를 쓰는 데 필요한 권한을 가집니다.

나중에 권한을 역할에 추가하거나 단일 함수와 관련된 다른 역할로 바꿀 수 있습니다.

Node.js 함수를 만들려면

  1. Lambda 콘솔을 엽니다.

  2. 함수 생성을 선택합니다.

  3. 다음 설정을 구성합니다:

    • 이름my-function.

    • 런타임Node.js 10.x.

    • 역할기존 역할을 선택합니다.

    • 기존 역할lambda-role.

  4. 함수 생성을 선택합니다.

  5. 테스트 이벤트를 구성하려면 테스트를 선택합니다.

  6. 이벤트 이름test를 입력합니다.

  7. Create를 선택합니다.

  8. 함수를 실행하려면 테스트를 선택합니다.

콘솔은 index.js이라는 단일 소스 파일로 Lambda 함수를 생성합니다. 이 파일을 편집하고 기본 제공 코드 편집기에서 더 많은 파일을 추가할 수 있습니다. 변경 사항을 저장하려면 [Save]를 선택합니다. 그런 다음 코드를 실행하려면 테스트를 선택합니다.

참고

Lambda 콘솔은 AWS Cloud9을 사용하여 브라우저에서 통합 개발 환경(IDE)을 제공합니다. AWS Cloud9를 사용하면 자신의 환경에서 Lambda 함수를 개발할 수도 있습니다. 자세한 내용은 AWS Cloud9 사용 설명서의 AWS Lambda 함수 작업 단원을 참조하십시오.

index.js 파일은 이벤트 객체와 컨텍스트 객체를 취하는 handler라는 이름의 함수를 내보냅니다. 이것은 함수가 호출 될 때 Lambda이 호출하는 핸들러 함수입니다. Node.js 함수 런타임은 Lambda에서 호출 이벤트를 가져와 핸들러로 전달합니다. 함수 구성에서 핸들러 값은 index.handler입니다.

함수 코드를 저장할 때마다 Lambda 콘솔은 함수 코드가 포함된 ZIP 아카이브인 배포 패키지를 생성합니다. 함수 개발이 진행되면 소스 제어에 함수 코드를 저장하고 라이브러리를 추가하며 배포를 자동화할 필요가 있습니다. 먼저 배포 패키지를 생성하고 명령줄에서 코드를 업데이트하십시오.

함수 런타임은 호출 이벤트 외에도 컨텍스트 객체를 핸들러에 전달합니다. 컨텍스트 객체에는 호출, 함수 및 실행 환경에 관한 추가 정보가 포함되어 있습니다. 자세한 내용은 환경 변수에서 확인할 수 있습니다.

Lambda 함수는 CloudWatch Logs 로그 그룹과 함께 제공됩니다. 함수 런타임은 각 호출에 대한 세부 정보를 CloudWatch Logs에 보냅니다. 호출 중 함수가 출력하는 로그를 전달합니다. 함수가 오류를 반환하면 Lambda은 오류를 포맷한 후 이를 호출자에게 반환합니다.