콘텐츠로 이동

Serverless Framework에서 필요한 파일만 패키징하는 방법

등록일

수정일

Serverless Framework로 AWS Lambda를 배포할 때는 패키징 과정에서 업로드할 파일을 정리할 수 있다. 기본적으로는 프로젝트 루트의 파일이 대상이 될 수 있으므로, 필요 없는 파일을 제외하거나 필요한 파일만 포함하도록 설정하는 편이 효율적이다.

serverless.ymlpackage.patterns에서 포함/제외 대상을 지정할 수 있다.

package:
patterns:
- 'dist/**'
package:
patterns:
- '!node_modules/**'

1) 모든 파일을 제외하고 dist만 포함

섹션 제목: “1) 모든 파일을 제외하고 dist만 포함”
package:
patterns:
- '!**'
- 'dist/**'

이 방식은 빌드 결과물만 포함하고 싶을 때 자주 사용한다.

package:
patterns:
- '!test/**'
- '!docs/**'
- '!scripts/**'

이 방식은 프로젝트 대부분은 포함하되, 테스트나 문서처럼 배포에 필요 없는 디렉토리만 빼고 싶을 때 사용한다.

  • !**로 모든 파일을 먼저 제외하면, 이후 필요한 디렉토리나 파일을 명시적으로 다시 포함해야 한다.
  • 예를 들어 빌드 산출물만 배포할 때는 dist/** 같은 패턴을 반드시 다시 넣어야 한다.

2) 빌드 결과물만 포함하는 방식

섹션 제목: “2) 빌드 결과물만 포함하는 방식”
  • 런타임에 필요한 파일이 명확하다면, 전체를 포함한 뒤 일부를 빼는 방식보다 빌드 결과물만 포함하는 방식이 더 안전할 수 있다.