.zip
파일을 포함하기 위해 필요 NPM 람다 모듈. 그리고 프로덕션 코드와 마찬가지로 Lambda 웹 편집기를 사용하지 않아야하며 로컬로 개발하고 git에 커밋해야합니다.
나의 흐름 :
1) 내 Lambda 함수는 일반적으로 더 큰 프로젝트의 도우미 유틸리티이므로 / aws / lambdas를 만듭니다. 디렉토리를 .
2) 각 개별 람다 디렉토리에는 함수 코드, 종속성을 정의 하는 package.json 파일 및 / node_modules 서브 디렉토리를 포함하는 index.js 파일이 있습니다. (lambda는 package.json 파일을 사용하지 않으므로 명령을 로컬에서 실행할 수 있습니다 .)npm install
package.json :
{
"name": "my_lambda",
"dependencies": {
"svg2png": "^4.1.1"
}
}
3) npm 설치 및 압축에서 생성 된 파일이 저장소를 어지럽히 지 않도록 모든 node_modules 디렉토리와 .zip 파일을 .gitignore합니다.
gitignore :
# Ignore node_modules
**/node_modules
# Ignore any zip files
*.zip
4) npm install
디렉토리 내에서 실행 하여 모듈을 설치하고 로컬에서 기능을 개발 / 테스트합니다.
5) 람다 디렉토리를 압축하고 콘솔을 통해 업로드하십시오.
( 중요 : Finder에서 Mac의 '압축'유틸리티를 사용하여 파일을 압축하지 마십시오! 디렉토리의 루트 내에서 CLI에서 zip을 실행해야합니다. 여기를 참조 하십시오. )
zip -r ../yourfilename.zip *
노트:
Lambda의 Linux 기반 환경에 배포 할 때 일부 플랫폼 별 모듈이 실패 할 수 있으므로 Mac에 로컬로 노드 모듈을 설치하면 문제가 발생할 수 있습니다. ( https://stackoverflow.com/a/29994851/165673 참조 )
해결책은 사용중인 Lambda Node.js 런타임에 해당하는 AMI에서 시작된 EC2 인스턴스에서 모듈을 컴파일하는 것입니다 (이 Lambda 런타임 및 해당 AMI 목록 참조 ).
Node.js의 AWS Lambda 배포 패키지-AWS Lambda를 참조하십시오.