소스 리포지토리 열기 - AWS Lambda

소스 리포지토리 열기

AWS Lambda는 서버리스 애플리케이션을 빌드, 사용자 지정 및 최적화하는 데 도움이 되는 다양한 오픈 소스 도구, 라이브러리 및 구성 요소를 제공합니다. 이러한 리소스에는 AWS에서 유지 관리하고 GitHub에서 사용할 수 있는 런타임 인터페이스 클라이언트, 이벤트 라이브러리, 컨테이너 기본 이미지, 개발 도구 및 샘플 프로젝트가 포함됩니다. 이러한 오픈 소스 리포지토리를 활용하여 Lambda의 기능을 확장하고, 사용자 지정 런타임을 생성하고, 다양한 AWS 서비스의 이벤트를 처리하고, 함수의 성능에 대한 심층적인 인사이트를 얻을 수 있습니다. 이 페이지에서는 Lambda 개발을 지원하는 주요 오픈 소스 프로젝트의 개요를 제공합니다.

런타임 인터페이스 클라이언트

Lambda 런타임 인터페이스 클라이언트(RIC)는 런타임 API를 구현하고 함수 코드와 Lambda 서비스 간의 상호 작용을 관리하는 오픈 소스 라이브러리입니다. 이러한 클라이언트는 호출 이벤트 수신, 컨텍스트 정보 전달 및 오류 보고를 처리합니다.

Lambda의 관리형 런타임 및 컨테이너 기본 이미지에서 사용하는 런타임 인터페이스 클라이언트는 오픈 소스로 게시됩니다. 사용자 지정 런타임을 빌드하거나 기존 런타임을 확장할 때 이러한 오픈 소스 라이브러리를 사용하여 구현을 간소화할 수 있습니다. 다음 오픈 소스 GitHub 리포지토리에는 Lambda의 RIC에 대한 소스 코드가 포함되어 있습니다.

이러한 클라이언트를 사용하여 사용자 지정 런타임을 빌드하는 방법에 대한 자세한 정보는 AWS Lambda에 대한 사용자 지정 런타임 빌드 섹션을 참조하세요.

이벤트 라이브러리

Lambda 이벤트 라이브러리는 다양한 AWS 서비스의 이벤트를 처리하기 위한 유형 정의 및 헬퍼 유틸리티를 제공합니다. 이러한 라이브러리를 사용하면 유형 안전 방식으로 이벤트 데이터를 구문 분석하고 처리할 수 있으므로 Amazon S3, Amazon DynamoDB 및 Amazon API Gateway와 같은 서비스의 이벤트를 더 쉽게 사용할 수 있습니다.

컴파일된 언어의 경우는 AWS가 다음 이벤트 라이브러리를 제공합니다.

Node.js, Python, Ruby와 같이 해석된 언어의 경우 별도의 라이브러리 없이 이벤트를 JSON 객체로 직접 구문 분석할 수 있습니다. 그러나 Node.js 및 Python을 사용하는 개발자는 컴파일된 언어 라이브러리가 제공하는 것과 유사한 유형 힌트, 데이터 검증 및 기능을 제공하는 AWS 이벤트에 내장 스키마를 제공하는 AWS Lambda용 powertools를 활용할 수 있습니다.

컨테이너 기본 이미지

AWS는 Lambda 함수의 컨테이너 이미지를 빌드하기 위한 시작점으로 사용할 수 있는 오픈 소스 컨테이너 기본 이미지를 제공합니다. 이러한 기본 이미지에는 Lambda 실행 환경에서 함수를 실행하는 데 필요한 런타임 인터페이스 클라이언트 및 기타 구성 요소가 포함됩니다.

사용 가능한 기본 이미지 및 사용 방법에 대한 자세한 내용은 AWS Lambda 기본 이미지 리포지토리 및 컨테이너 이미지를 사용하여 Lambda 함수 생성 섹션을 참조하세요.

개발 도구

AWS는 Lambda 함수를 빌드하고 최적화하는 데 도움이 되는 추가 오픈 소스 개발 도구를 제공합니다.

AWS Lambda용 Powertools

AWS Lambda용 Powertools는 필수 유틸리티를 통해 서버리스 개발을 간소화하여 다중 레코드 처리 및 Kafka 소비자 라이브러리에 대한 중복 처리 및 배치 처리를 방지합니다. 이러한 기능을 사용하면 코드 복잡성과 운영 오버헤드를 최소화할 수 있습니다.

또한 다음 AWS Well-Architected 모범 사례를 따르면서 프로덕션 환경에서 바로 사용할 수 있는 Lambda 함수 생성을 가속화하도록 설계된 기본 제공 이벤트 스키마 검증, 구조화된 로깅 및 추적, 파라미터 스토어 통합을 활용할 수 있습니다.

GitHub 리포지토리:

Java 개발 도구

  • Java Profiler(실험용) - Java Lambda 함수를 프로파일링하기 위한 도구입니다.

  • Java 라이브러리 - JUnit 테스트 유틸리티 및 프로파일링 도구와 같은 주요 프로젝트를 포함하여 Lambda 개발을 위한 포괄적인 Java 라이브러리 및 도구 모음이 포함된 리포지토리입니다.

  • 서버리스 Java 컨테이너 - 변경 사항을 최소화하면서 Lambda에서 기존 Java 애플리케이션을 실행할 수 있는 라이브러리입니다.

.NET 개발 도구

AWS Lambda .NET 리포지토리는 .NET CLI용 AWS Lambda 도구 및 .NET Core 애플리케이션을 호스팅하기 위한 .NET Core 서버 등에 대한 주요 프로젝트를 포함하여 Lambda 개발을 위한 .NET 라이브러리 및 도구를 제공합니다.

샘플 프로젝트

서버리스 랜드 리포지토리에서 샘플 Lambda 프로젝트 및 애플리케이션의 포괄적인 컬렉션을 살펴보세요. 이러한 샘플은 서버리스 애플리케이션을 시작하는 데 도움이 되는 다양한 Lambda 사용 사례, 통합 패턴 및 모범 사례를 보여 줍니다.