바이너리 공유 라이브러리 종속 프로그램을 포함하는 AWS Lambda 배포 패키지를 만들고 싶습니다. 패키지를 다시 컴파일하지 않고 Amazon Linux AMI 패키지를 사용하려면 어떻게 해야 합니까?

Lambda 배포 패키지는 코드와 종속 프로그램이 포함된 .zip 파일입니다. Lambda 실행 환경은 특정 Amazon Linux AMI와 커널 버전을 기반으로 합니다. Lambda 배포 패키지에 사용되는 네이티브 바이너리는 이 환경에서 컴파일해야 하며, 64비트 바이너리만 지원됩니다.

Amazon Linux AMI 네이티브 바이너리 패키지를 사용하려면 64비트 라이브러리의 압축을 푼 후 Lambda 배포 패키지에 포함하면 됩니다. (이 설명서에서는 다루지 않지만 또 다른 방법은 소스 코드를 공유 라이브러리로 다운로드한 후 패키지를 다시 컴파일하는 것입니다.)

Amazon Linux AMI에서 Amazon EC2 인스턴스 시작

1.    Lambda 실행 환경 및 사용 가능 라이브러리를 열고 "amzn-ami-hvm"으로 시작하는 AMI를 찾습니다.

2.    AMI 이름 링크를 선택하여 Amazon Elastic Compute Cloud(Amazon EC2) 콘솔을 열고 AMI에 대한 검색 결과를 봅니다.

3.    시작을 선택하여 인스턴스 시작 마법사를 엽니다.

4.    검토 및 시작을 선택하여 마법사에서 기본 인스턴스 시작 세부 정보를 승인한 후 시작을 선택합니다.

인스턴스에서 라이브러리 추출

1.    인스턴스에 연결한 후 다음 명령을 실행하여 패키지를 추출하는 도구를 설치합니다.

sudo yum install -y yum-utils rpmdevtools

2.    코드에 필요한 라이브러리와 종속 프로그램을 모를 경우 yum을 사용하여 확인하십시오.

예를 들어 Microsoft SQL Server 및 Sybase 데이터베이스용 FreeTDS 라이브러리의 경우 다음 명령을 실행합니다.

sudo yum install freetds

참고: 이 예제에서는 종속 프로그램을 위해 gnutls, libtool-ltdl, unixODBC를 설치하라는 메시지도 표시됩니다.

3.    라이브러리와 종속 프로그램을 다운로드하여 압축을 풀려면 다음 명령을 실행합니다.

cd /tmp
yumdownloader unixODBC.x86_64 freetds.x86_64 libtool-ltdl.x86_64 gnutls.x86_64
rpmdev-extract *rpm

4.    Lambda 배포 패키지를 위한 라이브러리를 디렉터리로 복사하려면 다음 명령을 실행합니다. 

sudo mkdir -p /var/task
sudo chown ec2-user:ec2-user /var/task
cd /var/task
/bin/cp /tmp/*/usr/lib64/* /var/task

배포 패키지 만들기

다음 중 하나를 수행하십시오.

  • 코드와 기타 리소스를 같은 디렉터리에 복사하고 코드 및 런타임 환경에 적합한 구성을 수행한 후 테스트합니다.
  • 다음 명령을 실행하여 .zip 파일 배포 패키지를 만듭니다.
cd /var/task
zip -r9 /tmp/MyCodeWithLibraries.zip *

.zip 파일 배포 패키지를 배포한 후 테스트합니다.

배포 패키지를 만드는 자세한 정보는 샘플 함수 코드환경 변수를 사용하여 Lambda 함수 만들기를 참조하십시오.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시 날짜: 2018-11-14