2017-04-13 6 views
1

그래서 Bamboo CI 서버를 AWS의 EC2 인스턴스에서 실행하는 중입니다. 모든 것이 멋지게 꾸몄다. 그러나 나는 한 가지 문제에 봉착했다. CI 부분은 제대로 작동하지만 Ubuntu 기반 Bamboo 서버에서 "dotnet lambda publish"를 실행하여 개발 한 아티팩트가 Windows 컴퓨터에서 "dotnet lambda publish"를 실행하는 것과 비교하여 호환되지 않는 패키지를 만드는 것으로 보입니다. 내 대나무 서버에 의해 생성 된 패키지를 배포 할 때, 단순히 다음과 같은 오류가 발생합니다 : I 패키지의 내용을 검토 한 결과Windows 환경에서 Ubuntu 환경과 비교하여 "dotnet lambda package"를 실행하는 다른 패키지

{ 
    "errorType": "LambdaException", 
    "errorMessage": "Unable to load assembly '<project-name>, Culture=neutral, PublicKeyToken=null'." 
} 

와 파일의 눈에 보이는 차이가 없음에도 불구하고, 파일 크기에 약간의 차이가 있습니다. Ubuntu에서 생성 된 패키지는 약 14.8 MB이고 Windows에서 생성 된 패키지는 약 15.4 MB입니다.

누구나 이러한 패키지 프로세스의 차이점을 설명 할 수 있습니까? 왜 우분투 컴파일시 좀 더 작은 패키지를 얻을 수 있습니까? 왜 우분투 패키지가 파일을 찾을 수 없다는 불평을하는 동안 내 Windows 패키지가 작동합니까?

"dotnet lambda package"명령은 운영 체제 환경에 관계없이 Lambda 컨텍스트에 맞게 빌드 도구를 사용한다고 가정했습니다. 같은 CLI 명령으로 다른 환경에서 서로 겉으로보기에 호환되지 않는 빌드를 작성하는 것은 이상하게 보입니다.


편집 : 추가 조사 후, 나는 그것이 "DOTNET 람다 패키지"CLI의 실행을 통해 대나무 CI 서버에서 사용되는을 압축 과정을 함께 할 수있는 뭔가가 생각합니다. 내 Windows 컴퓨터에 로컬로 가져 와서 패키지를 다시 업로드하려고하면 실패합니다. 좀 더 조사한 결과, Windows에서 패키지를 압축 해제 한 다음 마우스 오른쪽 버튼을 클릭하고 압축 된 (압축 된) 폴더로 다시 압축 한 다음 다시 업로드하면 동일한 파일 내용이 시작됩니다. 일. 아마도 "dotnet lambda package"방법 중에 zip 실행 문제일까요?

답변

1

제 편집에 대한 깨달음을 얻은 후에 Amazon.Lambda.Tools 패키지를 만드는 데 도움을 준 Amazon의 담당자에게 연락하기로 결정했습니다. 리눅스 머신에 "zip"이 설치되어 있지 않으면 자동으로 윈도우 머신을 사용하고 있다고 가정하고 잘못된 실행 파일을 선택하여 "dotnet lambda package"로 만든 최종 패키지를 압축합니다. . 올바르지 않은 실행 파일을 사용하면 적용된 chmod 명령이 넘겨지지 않습니다.

간단한 수정, 실행 : APT 설치 우편

이 여러분의 우분투 상자가 올바른 우편 실행 파일을 사용하고 그 결과 zip 파일은 문제없이 람다에 업로드 할 수 있도록 할 것이다.

https://github.com/aws/aws-lambda-dotnet/issues/100

+0

진심이 필요 어딘가에 AWS 문서에 있어야합니다 ~ – user3682091

+0

오른쪽하지만!? 다행히도 고통 스러울 때 누군가 다른 사람을 구하는 데 도움이되었습니다. –