AWS Lambda
개발자 가이드

AWS Lambda 배포 패키지(Node.js)

배포 패키지는 함수 코드 및 종속성이 포함되어 있는 ZIP 아카이브 파일입니다. Lambda API를 사용하여 함수를 관리하거나, 코드에서 AWS SDK 이외의 라이브러리와 종속성을 포함하려면 배포 패키지를 생성해야 합니다. 패키지를 Lambda에 직접 업로드하거나 Amazon S3 버킷을 사용하여 Lambda에 업로드할 수 있습니다.

Lambda 콘솔 편집기를 사용하여 함수를 작성하는 경우 콘솔에서 배포 패키지를 관리합니다. 라이브러리를 추가할 필요가 없는 한 이 방법을 사용할 수 있습니다. 또한 총 크기가 3 MB를 초과하지 않는 한, 이 방법을 사용하여 이미 배포 패키지에 라이브러리가 있는 함수를 업데이트할 수 있습니다.

참고

배포 패키지 크기를 작게 유지하려면 함수의 계층별 종속성을 패키지화하십시오. 계층을 사용하면 독립적으로 종속성을 관리하고, 여러 함수에서 사용할 수 있으며 다른 계정과 공유할 수 있습니다. 자세한 내용은 AWS Lambda 계층 단원을 참조하십시오.

Lambda에서 배포 패키지의 파일을 실행하려면 적절한 파일 모드가 있어야 합니다. 자세한 내용은 Lambda 배포 패키지에 대한 권한 정책 단원을 참조하십시오.

종속 프로그램이 없는 함수를 업데이트

Lambda API를 사용하여 함수를 생성하거나 업데이트하려면 함수 코드를 포함하는 아카이브를 생성한 후 AWS CLI를 사용하여 이 아카이브를 업로드합니다.

종속 프로그램이 없는 Node.js 함수를 업데이트하려면

  1. ZIP 아카이브를 생성합니다.

    ~/my-function$ zip function.zip index.js
  2. update-function-code 명령을 사용하여 패키지를 업로드합니다.

    ~/my-function$ aws lambda update-function-code --function-name my-function --zip-file fileb://function.zip { "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "Runtime": "nodejs10.x", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Handler": "index.handler", "CodeSize": 300, "Description": "", "Timeout": 3, "MemorySize": 128, "LastModified": "2018-11-23T21:00:10.248+0000", "CodeSha256": "Qf0hMc1I2di6YFMi9aXm3JtGTmcDbjniEuiYonYptAk=", "Version": "$LATEST", "TracingConfig": { "Mode": "Active" }, "RevisionId": "983ed1e3-ca8e-434b-8dc1-7d72ebadd83d" }

추가 종속 프로그램이 있는 함수를 업데이트

함수가 SDK for JavaScript 외의 다른 라이브러리를 사용할 경우 NPM을 사용하여 로컬 디렉터리에 해당 라이브러리를 설치한 후 배포 패키지에 포함시키십시오. 런타임에 포함된 버전보다 최신 버전이 필요한 경우 또는 향후에 버전이 변경되지 않도록 하려면 SDK for JavaScript을 포함시킬 수도 있습니다.

종속 프로그램이 있는 Node.js 함수를 업데이트하려면

  1. npm install 명령을 사용하여 node_modules 디렉터리에 라이브러리를 설치합니다.

    ~/my-function$ npm install aws-xray-sdk

    그러면 다음과 유사한 폴더 구조가 생성됩니다.

    ~/my-function ├── index.js └── node_modules ├── async ├── async-listener ├── atomic-batcher ├── aws-sdk ├── aws-xray-sdk ├── aws-xray-sdk-core
  2. 프로젝트 폴더의 내용을 포함한 ZIP 파일을 생성합니다.

    ~/my-function$ zip -r function.zip .
  3. update-function-code 명령을 사용하여 패키지를 업로드합니다.

    ~/my-function$ aws lambda update-function-code --function-name my-function --zip-file fileb://function.zip { "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function", "Runtime": "nodejs10.x", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Handler": "index.handler", "CodeSize": 300, "Description": "", "Timeout": 3, "MemorySize": 128, "LastModified": "2018-11-23T21:00:10.248+0000", "CodeSha256": "Qf0hMc1I2di6YFMi9aXm3JtGTmcDbjniEuiYonYptAk=", "Version": "$LATEST", "TracingConfig": { "Mode": "Active" }, "RevisionId": "983ed1e3-ca8e-434b-8dc1-7d72ebadd83d" }

코드 및 라이브러리 외에도, 배포 패키지가 실행 파일 및 기타 리소스를 포함할 수 있습니다. 자세한 내용은 다음 자료를 참조하십시오.