2017-10-03 2 views
0

업로드 된 .zip 파일 (항상)을 생성하는 lambda 함수를 실행하는 데 문제가 발생했습니다. 이 경우 파일이 압축되는 방식이 매우 엄격하다는 것을 발견했습니다.AWS Lambda zip file 명령

잘못된 명령 명령 예는 다음에서 제공하는 솔루션 :

$ ls 
    lambda_sample 
$ zip -r lambda_sample lambda_sample 

올바른 명령을

$ cd lambda_sample 
$ zip -r ../lambda_sample . 

그리고 실제로, 두 번째 명령은 나를 위해 일했다.

왜 첫 번째 명령이 작동하지 않는지 궁금합니다. 또한 macOS를 사용하고 있는데 폴더를 오른쪽 클릭하여 Compress [folder_name]은 람다가 읽을 수없는 파일 [folder_name].zip을 생성하므로 처음에 언급 한 것과 같은 오류가 발생합니다. 아무도 통찰력을 제공 할 수 있습니까?

답변

3

AWS Lambda는 Zip 파일의 기본/루트에 처리기가 있고 사용자가 표시하는 zip 명령이 다른 파일 레이아웃을 생성 할 것으로 예상합니다.

나는 내 시스템에서 몇 가지 예를 들어 설명 할 것입니다.

귀하의 첫 번째 명령의 예입니다 :

> ls 
package 
> zip -r package package 
adding: package/ (stored 0%) 
adding: package/lambda.py (deflated 38%) 
adding: package/process/ (stored 0%) 
adding: package/process/__init__.py (stored 0%) 
adding: package/process/aws.py (deflated 56%) 
# ... etc. 

I unzip package.zip는 결과 압축이 풀린 파일의 폴더 구조는 다음과 같습니다 경우 : 이제

package/lambda.py 
package/process/ 
package/process/__init__.py 
# and so on 

, 두 번째의 예 명령, 여기서 cd package 첫 번째 :

> zip -r ../package . 
adding: lambda.py (deflated 38%) 
adding: process/ (stored 0%) 
# ... etc. 

나는 unzip package.zip이 보이는 경우 결과 압축이 풀린 파일 그래서 :

lambda.py 
process/ 
process/__init__.py 
# etc. 

그래서 두 번째 경우에, 당신은 우편 번호를 확장 한 후 상위 디렉토리를 가지고 있지 않으며, AWS 람다가 제대로 작동합니다.