AWS Lambda 함수 핸들러(Ruby) - AWS Lambda

AWS Lambda 함수 핸들러(Ruby)

Lambda 함수의 핸들러는 함수가 호출될 때 Lambda이 호출하는 메서드입니다. 다음 예제에서 파일 function.rbhandler라는 이름의 핸들러 메서드를 정의합니다. 핸들러 함수는 2개의 객체를 입력으로 사용하며 JSON 문서를 반환합니다.

예 function.rb

require 'json' def handler(event:, context:) { event: JSON.generate(event), context: JSON.generate(context.inspect) } end

함수 구성에서 handler 설정은 핸들러를 찾을 위치를 Lambda에 알려줍니다. 앞의 예제에서 이 설정의 올바른 값은 function.handler입니다. 여기에는 점으로 구분된 2개의 이름 즉, 파일 이름과 핸들러 메서드의 이름이 포함됩니다.

하나의 클래스에서 핸들러 메서드를 정의할 수도 있습니다. 다음 예제에서는 LambdaFunctions라는 이름의 모듈에서 Handler라는 이름의 클래스에 process라는 이름의 핸들러 메서드를 정의합니다.

예 source.rb

module LambdaFunctions class Handler def self.process(event:,context:) "Hello!" end end end

이 경우, 핸들러 설정은 source.LambdaFunctions::Handler.process입니다.

핸들러가 허용하는 2개의 객체로는 호출 이벤트 및 컨텍스트가 있습니다. 해당 이벤트는 호출자가 제공하는 페이로드가 포함된 Ruby 객체입니다. 페이로드가 JSON 문서인 경우, 이벤트 객체는 Ruby 해시입니다. 그렇지 않은 경우, 이 객체는 문자열입니다. 컨텍스트 객체에는 호출, 함수 및 실행 환경에 관한 정보를 제공하는 메서드와 속성이 있습니다.

함수 핸들러는 Lambda 함수가 호출될 때마다 실행됩니다. 핸들러 외부의 정적 코드는 함수의 인스턴스당 한 번씩 실행됩니다. 핸들러가 SDK 클라이언트 및 데이터베이스 연결과 같은 리소스를 사용하는 경우, 핸들러 메서드 외부에서 그러한 리소스를 생성하면 다중 호출 시 이 리소스를 다시 사용할 수 있습니다.

함수의 각 인스턴스는 다중 호출 이벤트를 처리할 수 있으며 다만 이벤트를 한 번에 하나씩만 처리합니다. 주어진 시간에 하나의 이벤트를 처리하는 인스턴스의 수는 함수의 동시성을 나타냅니다. Lambda 실행 컨텍스트에 대한 자세한 내용은 AWS Lambda 실행 컨텍스트 단원을 참조하십시오.