Lambda 함수를 호출하기 위해 사용 가능한 트리거 소개

Lambda Hamsuleul Hochulhagi Wihae Sayong Ganeunghan Teuligeo Sogae



AWS Lambda는 서버리스 세계에 혁명을 일으킨 놀라운 클라우드 기반 서비스입니다. 실제로 쉽고 빠르게 설정할 수 있고 클라우드 인프라의 전체 예산을 줄이는 데 도움이 되는 SaaS(Software as a Service)입니다. 당신이 해야 할 일은 코드를 디자인하고 람다 함수를 사용하여 실행하는 것입니다.

자, 여기서 요점은 함수에서 코드를 실행하는 방법이며 이에 대한 대답은 람다 함수를 호출하거나 트리거할 수 있는 메서드의 긴 목록이 있다는 것입니다. 여기에는 필요할 때 원하는 기능을 호출하는 데 사용할 수 있는 다른 많은 AWS 서비스가 포함됩니다.

이 기사에서는 Amazon에서 람다 함수를 호출하는 데 적용할 수 있는 서비스 및 기술에 대한 간략한 설명을 볼 것입니다.







호출 유형

더 진행하기 전에 람다 함수가 처리할 수 있는 다음 두 가지 주요 호출 유형에 대해 논의하겠습니다.



  • 동기식 호출
  • 비동기식 호출
  1. 동기 호출
    동기식 호출에서 람다를 호출하는 서비스는 결과가 반환될 때까지 기다린 다음 나머지 프로세스를 수행해야 합니다. 우리는 또한 람다 함수의 출력이 이 람다를 호출한 함수나 서비스 자체에 필요하다고 말할 수 있습니다.
  2. 비동기식 호출

    여기서 람다 함수가 결과를 호출자에게 다시 제공할 때까지 기다리지 않습니다. 이는 주로 알림에 사용되거나 AWS에서 다른 독립 이벤트를 트리거하는 데 사용됩니다. 람다 함수를 호출하려는 서비스는 트리거를 보내기만 하면 해당 작업이 람다에 대기되고 차례대로 실행됩니다.



Lambda를 호출하는 다양한 방법

여기에서 람다 함수를 호출하는 다양한 방법을 보게 될 것입니다. 이것을 알고 있으면 다음에 간단하지만 비용 효율적인 AWS 인프라를 설계할 때 매우 유용합니다.





Lambda 함수 직접 호출

대부분의 경우 람다 함수는 다른 서비스를 사용하여 트리거되도록 설계되었지만 AWS 관리 콘솔, AWS CLI 및 함수 URL을 통해 직접 호출할 수 있습니다.

관리 콘솔에서 Lambda 호출

AWS 콘솔에서 람다 함수를 생성할 때 콘솔의 테스트 실행 옵션을 사용하여 쉽게 트리거할 수 있습니다. 그만큼 테스트 버튼은 람다 함수의 코드 섹션에서 사용할 수 있습니다.



사용자 정의 이벤트를 생성하고 콘솔을 사용자 정의 이벤트 패턴으로 사용할 수 있습니다.

이러한 방식으로 AWS 콘솔에서 람다 함수를 트리거할 수 있습니다.

AWS CLI

AWS는 AWS 명령줄 인터페이스를 사용하여 모든 리소스를 사용할 수 있는 기능을 제공합니다. 이 CLI를 사용하여 모든 람다 함수를 호출할 수도 있습니다. 이것은 개발 단계에서 항목을 테스트하는 데 매우 효과적일 수 있습니다. AWS CLI 명령을 따르면 람다 함수를 호출하는 트리거로 사용할 수 있습니다.

[이메일 보호됨] :~$ AWS 람다 호출 \
--함수 이름 < Lambda 함수 이름 입력 > \
--유효 탑재량 < 입력 값 ~을 위한 람다 함수 > \
--cli-바이너리 형식 < 베이스64 | 로우 인 베이스 64 아웃 > < 출력 파일 이름 >

함수가 성공적으로 트리거되었으며 출력에서도 이를 관찰할 수 있습니다.

함수 URL

함수 URL은 실제로 람다 함수에 대해 구성할 수 있는 HTTP 끝점입니다. 이 URL을 사용하여 람다 함수를 트리거할 수 있으며 이 URL을 AWS 계정 외부의 다른 사용자와 공유하여 람다 함수를 호출할 수도 있습니다. 함수 URL에 주의해야 하지만 이 링크가 있는 사람은 람다 함수를 셀 수 없이 트리거할 수 있으며 모든 비용은 사용자의 머리에 있습니다.

람다 함수를 생성하는 동안과 생성한 후에 함수 URL을 구성할 수 있습니다. 이를 위해 구성 섹션의 고급 설정으로 이동하여 기능 URL 활성화 상자.

람다 함수를 생성할 때 함수 URL을 첨부하지 않은 경우 나중에 추가할 수 있습니다. 이를 위해서는 구성 탭으로 이동하여 기능 URL을 선택하고 다음을 클릭해야 합니다. 함수 URL 생성 .

이런 식으로 함수 URL이 생성되고 람다 함수를 호출하는 데 사용됩니다.

AWS 서비스를 사용하여 Lambda 함수 호출

많은 AWS 서비스를 람다 함수를 호출하는 트리거로 구성할 수 있습니다. AWS 서비스를 람다 함수를 호출하는 트리거로 구성하기만 하면 됩니다. 여기에서는 이러한 모든 서비스를 람다 트리거로 사용하는 방법에 대한 설명과 함께 살펴봅니다.

API 게이트웨이

애플리케이션 모델에서 API를 생성하고 관리하는 데 널리 사용되는 AWS 서비스입니다. API는 한 소프트웨어 패키지에서 다른 패키지로 요청 또는 호출을 생성하는 매우 유연한 방법을 제공합니다. 이 패키지는 직접적으로 노출할 수 없고 단지 뒤에서 유지하기를 원합니다.

람다 함수에 대한 트리거로 서비스를 추가하려면 람다 함수로 이동하여 트리거 추가를 클릭하기만 하면 됩니다.

다음으로 람다 함수에 트리거로 연결할 서비스를 선택할 수 있습니다. 이 섹션에서는 API 게이트웨이를 람다 함수에 대한 트리거로 선택합니다.

그런 다음 애플리케이션 구조에서 작동하도록 서비스를 구성합니다.

API 게이트웨이에서 지원하는 API에는 두 가지 유형이 있으며 이들은 람다 함수를 호출하는 데 사용할 수 있습니다.

HTTP API : 람다 함수로 라우팅되는 HTTP 끝점을 생성하는 데 사용됩니다. HTTP API는 더 적은 기능을 제공하고 사용 비용이 저렴합니다.

REST API : API에서 더 많은 기능을 원하면 REST API로 이동해야 합니다. 이러한 API는 람다 함수를 호출하고 동일한 HTTP 메서드를 사용하여 더 많은 유연성과 독립성을 제공할 수 있습니다.

S3 버킷

S3 버킷이 람다 함수를 호출하는 트리거 역할을 하는 사용 사례가 많이 있습니다. 특정 S3 이벤트에 대해 람다 함수를 트리거하도록 S3 버킷을 구성할 수 있습니다.

예를 들어 파일이 버킷에 업로드될 때 파일의 메타데이터를 수집하려고 합니다. 이를 위해 코드를 개발하고 람다 함수에 배포합니다. Lambda 트리거의 경우 S3 버킷을 선택합니다. 이벤트 유형에 대해 다음을 선택합니다. 물건을 넣어 . 따라서 버킷에 새 파일이 추가될 때마다 람다 함수가 트리거되고 지정 시 객체의 메타데이터가 수집되어 대상 위치에 저장됩니다.

S3를 람다 함수를 호출하는 트리거로 사용할 수 있는 다른 많은 시나리오가 있을 수 있습니다.

로드 밸런서

람다 함수가 간단한 클라우드 기반 애플리케이션을 위한 가장 비용 효율적인 솔루션이므로 애플리케이션이 람다 함수에서 실행되도록 설계되었다고 가정합니다. 이제 최종 사용자에게 애플리케이션을 노출하기 위해 애플리케이션 앞에 로드 밸런서를 연결할 수 있습니다. 이 섹션에서는 람다 함수를 호출하는 트리거 역할을 하는 로드 밸런서를 선택합니다. 다른 로드 밸런서는 람다 함수에서 지원되지 않으므로 이 작업에 대해서만 애플리케이션 로드 밸런서를 설정할 수 있다는 점을 기억하십시오.

람다 함수에 애플리케이션 로드 밸런서를 추가하려면 먼저 대상 그룹을 생성해야 하며 해당 대상 그룹에 람다 함수를 추가해야 합니다. 이제 새로 생성된 대상 그룹을 애플리케이션 로드 밸런서의 리스너에 추가할 수 있습니다.

클라우드프론트

Amazon CloudFront는 실제로 CDN(Content Delivery Network)이며 실제 애플리케이션 서버에 비해 최종 사용자에게 훨씬 더 가까운 엣지 로케이션에서 애플리케이션 데이터를 캐시하는 데 사용됩니다. CloudFront를 사용하면 전 세계의 최종 사용자에게 정적 콘텐츠를 제공하는 응답 시간을 크게 향상시킬 수 있습니다.

람다 함수는 CloudFront 서비스를 사용하여 트리거할 수 있습니다. 이를 위해 람다 함수를 다음으로 알려진 전 세계의 엣지 로케이션에 배포해야 합니다. [이메일 보호됨]

CloudFront를 트리거로 설정하여 요청을 보낼 수 있습니다. [이메일 보호됨] CloudFront를 통해 응답 시간을 개선합니다. 로 [이메일 보호됨] 전 세계의 모든 엣지 로케이션에 배포되는 경우 최종 사용자는 가장 가까운 엣지 로케이션에 배포된 람다에 액세스하여 응답 시간을 최소화해야 합니다.

이를 구성하려면 다음으로 이동하십시오. 트리거 추가 CloudFront 서비스를 선택합니다. 거기, 당신은 볼 것입니다 배치하다 [이메일 보호됨] 옵션.

이제 구성 단계를 완료하고 시작하기만 하면 됩니다.

CloudWatch 로그

AWS 클라우드에서 모니터링을 생각할 때마다 가장 먼저 떠오르는 것은 CLoudWatch가 매우 유용한 방식으로 다양한 서비스에 대해 구성할 수 있는 매우 방대한 모니터링 서비스이기 때문입니다.

CloudWatch 로그는 이름에서 알 수 있듯이 모든 종류의 로그를 저장하는 데 사용할 수 있는 로깅 서비스입니다. 다른 서비스에 대해 다른 로그 그룹을 만들어 로그를 별도로 유지할 수 있습니다. 이러한 로그는 이러한 이벤트를 생성하는 서비스 또는 절차에 관계없이 수신 중인 이벤트를 기반으로 람다 함수를 트리거하는 데 사용할 수 있습니다.

람다 함수 콘솔에서 또는 CloudWatch 로그에서 직접 트리거를 구성할 수 있습니다. CloudWatch 콘솔에서 이 작업을 수행하려면 CloudWatch 서비스로 이동하여 로그 그룹을 열기만 하면 됩니다. 여기에서 람다 구독 필터를 만들어야 합니다.

다음으로 원하는 람다 함수를 선택하면 됩니다.

이제 CloudWatch가 해당 로그 스트림을 가져올 때마다 람다 함수를 호출하는 트리거 역할을 합니다.

이벤트브리지

Amazon EventBridge(이전의 CloudWatch Events)는 AWS 계정에서 발생하는 특정 이벤트에 대해 특정 AWS 서비스를 트리거하는 이벤트 규칙을 생성할 수 있는 AWS 서비스입니다.

AWS 서비스(예: EC2 인스턴스 생성 또는 RDS 데이터베이스 이벤트)와 타사 서비스(예: GitHub 푸시 이벤트)에 대해 설정할 수 있는 다양한 규칙이 있습니다. 이러한 규칙은 이 규칙이 충족될 때마다 람다 함수를 호출하는 방식으로 람다 함수와 같은 다른 서비스와 추가로 연결할 수 있습니다.

EventBridge 규칙이 이미 설정된 경우 이 규칙을 람다 함수에 대한 트리거로 쉽게 추가할 수 있습니다. EventBridge를 트리거로 선택하고 규칙 이름을 제공하기만 하면 됩니다.

기존 규칙이 여기에 트리거로 추가되지만 이 시점에서 규칙을 생성할 수도 있습니다.

다이나모DB

DynamoDB는 단지 NoSQL 데이터베이스이며 AWS에서 완전히 별도의 서비스로 나타납니다. 이것은 완전히 구성된 서버리스 데이터베이스이며 테이블 생성을 직접 시작할 수 있습니다. 이러한 DynamoDB 테이블은 람다 함수를 호출하는 트리거 역할을 하도록 구성할 수 있습니다.

DynamoDB의 데이터는 배치 형식의 입력으로 람다에 로드될 수 있으며 람다에 배포된 코드를 사용하여 처리됩니다.

키네시스

실시간 데이터를 빠른 속도로 수집하고 분석하려는 경우 AWS Kinesis의 이점을 누릴 수 있습니다. 람다 함수를 사용하여 Kinesis 데이터 스트림에서 수집한 데이터를 처리한다고 가정합니다. Kinesis에서 데이터를 기록할 때마다 람다 함수를 트리거하기만 하면 됩니다.

람다 함수를 호출하도록 Kinesis 데이터 스트림 구성을 완료했습니다.

SNS

때때로 한 서비스에서 다른 서비스로 직접 알림을 구성할 수 있는 방법이 없기 때문에 한 AWS 서비스에서 다른 AWS 서비스로 알림을 보내는 데 일반적으로 사용되는 알림 서비스입니다. 이 서비스를 사용하여 람다 함수를 트리거할 수 있습니다.

먼저 SNS 주제를 생성한 다음 이를 사용하여 람다 함수를 호출합니다.

SNS 주제의 이름을 선택해야 합니다. 다른 구성이나 설정은 없습니다.

결론

Amazon Lambda는 클라우드 아키텍처의 진정한 혁신입니다. 애플리케이션 개발 및 배포가 그 어느 때보다 쉽고 간단합니다. 모든 공통 프레임워크에서 코드를 생성하고 코드를 람다에 업로드하면 실행됩니다. AWS 람다와 결합할 수 있고 필요할 때만 람다 함수를 호출하는 트리거 역할을 할 수 있는 다른 서비스의 목록이 많이 있습니다. 서버의 지속적인 운영 비용은 없으나, 트리거 횟수와 코드 실행 시간에 따라 요금이 부과됩니다.