Lambda 함수 호출 - AWS Lambda

Lambda 함수 호출

Lambda 함수를 배포한 후에는 여러 가지 방법으로 함수를 간접적으로 호출할 수 있습니다.

  • Lambda 콘솔 - Lambda 콘솔을 사용하여 함수를 호출하는 테스트 이벤트를 빠르게 생성합니다.

  • AWS SDK - AWS SDK를 사용하여 프로그래밍 방식으로 함수를 간접적으로 호출합니다.

  • 호출 API - Lambda 호출 API를 사용하여 함수를 직접 호출할 수 있습니다.

  • AWS Command Line Interface(AWS CLI) - aws lambda invoke AWS CLI 명령을 사용하여 명령줄에서 함수를 직접 호출합니다.

  • 함수 URL HTTP(S) 엔드포인트 - 함수 URL을 사용하여 함수를 간접적으로 호출하는 데 사용할 수 있는 전용 HTTP(S) 엔드포인트를 생성합니다.

이러한 모든 메서드는 함수를 직접 호출하는 방법입니다. Lambda에서 일반적인 사용 사례는 애플리케이션의 다른 곳에서 발생하는 이벤트를 기반으로 함수를 간접적으로 호출하는 것입니다. 예를 들어 대기열에 메시지가 수신되면 Amazon Simple Queue Service(Amazon SQS)가 함수를 호출할 수 있습니다. 이러한 간접 호출 유형에 대한 자세한 내용은 다른 AWS 서비스로부터 Lambda 함수 호출 섹션을 참조하세요.

함수를 호출할 때 동기식으로 호출할 것인지 비동기식으로 호출할 것인지 선택할 수 있습니다. 동기식 호출의 경우 함수가 이벤트를 처리하여 응답을 반환하기를 기다립니다. 비동기식 호출의 경우, Lambda는 처리를 위해 이벤트를 대기열에 저장하고 즉시 응답을 반환합니다. 호출 API의 InvocationType 요청 파라미터에 따라 Lambda가 함수를 간접적으로 호출하는 방식이 결정됩니다. RequestResponse 값은 동기식 호출을 나타내고 Event 값은 비동기 호출을 나타냅니다.

함수 간접 호출에서 오류가 발생하는 경우 동기식 호출의 경우에는 응답에서 오류 메시지를 확인하고 간접 호출을 수동으로 다시 시도합니다. 비동기 호출의 경우 Lambda는 재시도를 자동으로 처리하고 간접 호출 레코드를 대상에 보낼 수 있습니다.

다른 AWS 서비스로부터 Lambda 함수 호출

다른 AWS 서비스에서 함수를 간접적으로로 호출하려면 트리거를 생성합니다. 트리거는 특정 이벤트 또는 조건이 발생할 때 다른 AWS 서비스가 함수를 간접적으로 호출할 수 있도록 하기 위해 구성하는 리소스입니다. 함수에는 여러 개의 트리거가 있을 수 있습니다. 각 트리거는 함수를 독립적으로 호출하는 클라이언트 역할을 하며 Lambda가 함수에 전달하는 각 이벤트에는 단일 트리거의 데이터만 있습니다.

Lambda 콘솔을 사용하여 트리거를 생성합니다. AWS Serverless Application Model(AWS SAM)을 사용하는 경우 AWS::Serverless::Function 리소스의 Events 속성을 사용하여 트리거를 구성할 수도 있습니다.

Lambda 콘솔을 사용하여 트리거를 생성하려면
  1. Lambda 콘솔의 함수 페이지를 엽니다.

  2. 트리거를 생성할 함수를 선택합니다.

  3. 함수 개요 창에서 트리거 추가를 선택합니다.

  4. 함수를 호출하려는 AWS 서비스를 선택합니다.

  5. 트리거 구성 창에서 옵션을 입력하고 추가를 선택합니다. 함수를 간접적으로 호출하기 위해 선택한 AWS 서비스에 따라 트리거 구성 옵션이 달라집니다.

트리거를 사용하여 Lambda 함수를 호출할 수 있는 전체 AWS 서비스 목록과 다양한 서비스의 트리거 구성에 대한 자세한 내용은 다른 서비스와 함께 Lambda 사용을 참조하세요.

트리거 하위 집합은 스트림이나 대기열을 사용하여 Lambda 함수로 이벤트를 보내기 전에 이벤트를 보류합니다. 함수를 호출하도록 이러한 트리거를 구성하려면 이벤트 소스 매핑을 생성해야 합니다. 이벤트 소스 매핑은 스트림 또는 대기열에서 항목을 읽고 Lambda 함수로 전송할 항목의 배치가 포함된 이벤트를 생성하는 리소스입니다. 각 이벤트에는 수백 또는 수천 개의 항목이 포함될 수 있습니다.

다음 통합에는 간접 호출을 위한 이벤트 소스 매핑이 필요합니다.