자습서: 예약 이벤트와 함께 AWS Lambda 사용 - AWS Lambda

자습서: 예약 이벤트와 함께 AWS Lambda 사용

이 자습서에서는 다음 작업을 수행합니다.

  • lambda-canary 블루프린트를 사용하여 Lambda 함수를 생성합니다. 1분마다 실행되도록 함수를 구성합니다. 함수가 오류 메시지를 반환하면 AWS Lambda가 CloudWatch에 오류 측정치를 로깅합니다.

  • AWS Lambda가 CloudWatch에 오류 측정치를 방출할 때 Amazon SNS 주제에 메시지를 게시하도록 Lambda 함수의 Errors 측정치에 대한 CloudWatch 경보를 구성합니다. 이메일 알림을 수신하려면 주제를 구독합니다. 이 자습서에서는 이를 설정하기 위해 다음 작업을 수행했습니다.

    • Amazon SNS 주제를 만듭니다.

    • 해당 주제에 새 메시지가 게시될 때 이메일 알림을 수신할 수 있도록 주제를 구독합니다.

    • Amazon CloudWatch에서 Lambda 함수의 Errors 측정치에 대한 알람을 설정하여 오류 발생 시 SNS 주제에 메시지가 게시되도록 합니다.

사전 조건

이 자습서는 사용자가 Lambda 작업과 Lambda 콘솔에 대한 기본 지식을 알고 있다고 가정합니다. 그렇지 않은 경우 AWS Lambda 시작하기의 지침에 따라 첫 Lambda 함수를 생성합니다.

Lambda 함수 생성

  1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/lambda/에서 AWS Lambda 콘솔을 엽니다.

  2. 함수 생성을 선택합니다.

  3. 블루프린트를 선택합니다.

  4. 검색줄에 canary를 입력합니다. lambda-canary 블루프린트를 선택한 후 구성을 선택합니다.

  5. 다음 설정을 구성합니다.

    • 이름lambda-canary.

    • 역할1개 이상의 템플릿으로 새 역할 생성

    • 역할 이름lambda-apigateway-role.

    • 정책 템플릿단순 마이크로서비스 권한

    • 규칙새 규칙 생성.

    • 규칙 이름CheckWebsiteScheduledEvent.

    • 규칙 설명CheckWebsiteScheduledEvent trigger.

    • 예약 표현식rate(1 minute).

    • 활성화 – True(선택).

    • 환경 변수

      • sitehttps://docs.aws.amazon.com/lambda/latest/dg/welcome.html.

      • expectedWhat is AWS Lambda?.

  6. 함수 생성을 선택합니다.

CloudWatch 이벤트는 예약 표현식을 기반으로 1분마다 이벤트를 생성합니다. 이벤트는 Lambda 함수를 트리거하여, 지정된 페이지에 해당 문자열이 나타나는지 확인합니다. 표현식 예약에 대한 자세한 내용은 Rate 또는 Cron을 사용한 예약 표현식 단원을 참조하십시오.

Lambda 함수 테스트

Lambda 콘솔에서 제공하는 예제 이벤트를 사용하여 함수를 테스트합니다.

  1. Lambda 콘솔의 함수 페이지(Functions page)를 엽니다.

  2. lambda-canary를 선택합니다.

  3. 페이지 상단의 테스트 버튼 옆의 드롭다운 메뉴에서 테스트 이벤트 구성을 선택합니다.

  4. CloudWatch 이벤트 이벤트 템플릿을 사용하여 새 이벤트를 생성합니다.

  5. Create를 선택합니다.

  6. [Test]를 선택합니다.

함수 실행의 출력은 페이지 상단에 표시됩니다.

Amazon SNS 주제를 생성하여 구독

canary 함수가 오류를 반환할 경우 알림을 받을 Amazon Simple Notification Service(Amazon SNS) 주제를 생성합니다.

주제 생성

  1. Amazon SNS 콘솔을 엽니다.

  2. [Create topic]을 선택합니다.

  3. 다음 설정을 사용하여 주제를 생성합니다.

    • 이름lambda-canary-notifications.

    • 표시 이름Canary.

  4. Create subscription을 선택합니다.

  5. 다음 설정을 사용하여 구독을 생성합니다.

    • 프로토콜Email.

    • 엔드포인트 – 이메일 주소.

Amazon SNS는 주제에 대한 알기 쉬운 이름을 반영하여 Canary <no-reply@sns.amazonaws.com>에서 이메일을 발송합니다. 이메일에 포함된 링크를 사용하여 주소를 확인합니다.

경보 구성

Amazon CloudWatch에서 Lambda 함수를 모니터링하여 실패 시 알림을 전송하는 경보를 구성합니다.

경보를 만들려면

  1. CloudWatch 콘솔을 엽니다.

  2. 알람을 선택합니다.

  3. 경보 생성을 선택합니다.

  4. 알람을 선택합니다.

  5. 다음 설정을 사용하여 경보를 생성합니다.

    • 측정치lambda-canary 오류.

      lambda canary errors를 검색하여 측정치를 확인합니다.

    • 통계 – Sum.

      미리 보기 그래프 위의 드롭다운 메뉴에서 통계를 선택합니다.

    • 이름lambda-canary-alarm.

    • 설명Lambda canary alarm.

    • 임계값 – 오류가 >=1일 때마다.

    • Send notification to(알림 보내기)lambda-canary-notifications.

경보 테스트

함수 구성을 업데이트하여 함수가 오류를 반환하고 경보가 트리거되도록 합니다.

경보를 트리거하려면

  1. Lambda 콘솔의 함수 페이지(Functions page)를 엽니다.

  2. lambda-canary를 선택합니다.

  3. Environment variables(환경 변수)에서 편집을 선택합니다.

  4. expected404로 설정합니다.

  5. 저장을 선택합니다.

잠시 기다린 후 Amazon SNS에서 발송한 이메일을 확인합니다.

리소스 정리

이 자습서 용도로 생성한 리소스를 보관하고 싶지 않으면 지금 삭제할 수 있습니다. 더 이상 사용하지 않는 AWS 리소스를 삭제하면 AWS 계정에 불필요한 요금이 발생하는 것을 방지할 수 있습니다.

Lambda 함수 삭제 방법

  1. Lambda 콘솔의 기능 페이지를 엽니다.

  2. 생성한 함수를 선택합니다.

  3. 작업, 삭제를 선택합니다.

  4. 삭제를 선택합니다.

CloudWatch 경보를 삭제하려면

  1. CloudWatch 콘솔의 경보 페이지를 엽니다.

  2. 생성한 경보를 선택합니다.

  3. [Actions], [Delete]를 선택합니다.

  4. 삭제를 선택합니다.

Amazon SNS 구독을 삭제하려면

  1. Amazon SNS 콘솔의 구독 페이지를 엽니다.

  2. 생성한 구독을 선택합니다.

  3. 삭제, 삭제를 선택합니다.

Amazon SNS 주제를 삭제하려면

  1. Amazon SNS 콘솔의 주제 페이지를 엽니다.

  2. 생성한 주제를 선택합니다.

  3. 삭제를 선택합니다.

  4. 텍스트 상자에 delete me를 입력합니다.

  5. 삭제를 선택합니다.