2017-10-22 1 views
0

저는 serverless 프레임 워크를 사용하여 aws lambda 함수를 배포하고 있습니다. 내 문제는 sls deploy -f any_fn 할 때마다 배포되는 large file (44MB)입니다. node_modules 폴더 (상당히 클 수 있음)가있을 때 비슷한 문제가 발생했습니다.serverless 배포의 크기를 줄이는 방법은 무엇입니까?

공용 파일을 한 번만 업로드하면 모든 크기의 파일을 업로드하여 업로드 크기를 줄일 수 있습니까? 왜냐하면 지금은 바뀌지 않지만 동일한 바이너리 파일을 반복적으로 압축하고 배포합니다.

+0

귀하의 기능과 그것의 의존성에 대해 더 자세히 말씀해 주시겠습니까? 거기에서 크기를 줄이는 방법이있을 수 있습니다. – dashmug

+0

@dashmug 나는이 프로젝트를 https://github.com/sambaiz/puppeteer-lambda-starter-kit (44MB)과이 프로젝트를 사용한이 프로젝트를 사용하여 두 번이 문제에 직면했다. https://github.com/araines/serverless-php (24MB) – supersan

답변

2

당신이 제안한 것을 할 방법이 없습니다. AWS Lambda는 매번 모든 의존성을 포함하여 전체 패키지를 업로드해야합니다. 모든 것이 Lambda에 배포 된 zip 파일 안에 있어야합니다.

+0

필자는 방법을 생각했지만 가능하다면 약간의 정보가 필요합니다. 서버가없는 프록시 함수, 즉 서버를 사용하지 않고 입력 매개 변수로 파일을 허용하는 lamba 함수를 만드는 경우 어떻게됩니까? 이 함수는이 입력 파일과 S3 버킷의 정적 파일을 결합한 다음 실제로 AWS.Lambda 노드 API를 사용하여 함수를 실제로 전개합니다. 이 방법으로 만 변경 사항을 보내고 다른 나머지 배치는 ​​프록시 람다 함수를 통해 정적 파일과 함께 새 람다 함수를 만듭니다. 그게 말이 되니? 나는 그것이 많은 일을 알고 있지만 그것이 효과가있을 것인가? – supersan

+0

로컬 컴퓨터에서 최종 패키지를 빌드하고 업로드 할 필요가 없도록 배포를 관리하는 무언가를 찾고 있다면 AWS CodePipeline과 같은 지속적인 통합/연속 전달 서비스를 사용할 수 있습니다. –

+0

AWS 람다에 대한 모든 정적 애셋을 사용하여 람다 함수를 배포하기 위해 AWS codepipeline을 사용하는 방법을 연구하기 시작할 것입니다. – supersan

관련 문제