Lambda 함수 호출 작업 - Amazon Simple Email Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Lambda 함수 호출 작업

Lambda 작업은 Lambda 함수를 통해 코드를 호출하고, 설정에 따라 Amazon SNS를 통해 알립니다. 이 작업에는 다음 옵션 및 요구 사항이 있습니다.

옵션
  • Lambda 함수 - Lambda 함수의 ARN입니다. Lambda 함수 ARN의 한 가지 예는 arn:aws:lambda:us-east-1:account-id:function:MyFunction입니다.

  • 호출 유형 - Lambda 함수의 호출 유형입니다. RequestResponse 호출 유형은 함수를 실행할 경우 즉각적인 응답이 발생한다는 것을 의미합니다. Event 호출 유형은 함수가 비동기식으로 호출된다는 것을 의미합니다. 해당 사용 사례에 반드시 동기식 실행이 필요한 경우가 아니라면 이벤트(Event) 호출 유형을 사용할 것을 권장합니다.

    [RequestResponse] 호출에는 30초의 요청 제한 시간이 있습니다.

    자세한 내용은 AWS Lambda 개발자 가이드Lambda 함수 호출을 참조하세요.

  • SNS 주제 - 지정된 Lambda 함수를 트리거한 후 알림을 전송할 Amazon SNS 주제의 이름 또는 ARN입니다. Amazon SNS 주제 ARN의 한 가지 예시는 arn:aws:sns:us-east-1:123456789012:MyTopic입니다. 자세한 내용은 Amazon Simple Notification Service 개발자 안내서에서 Amazon SNS 주제 생성을 참조하세요.

요구 사항
  • 선택하는 Lambda 함수는 이메일 수신 시 사용하는 Amazon SES 엔드포인트와 동일한 AWS 리전에 속해야 합니다.

  • 선택하는 Amazon SNS 주제는 이메일 수신 시 사용하는 Amazon SES 엔드포인트와 동일한 AWS 리전에 속해야 합니다.

Lambda 함수 작성하기

이메일을 처리할 때(즉, Event 호출 유형을 사용) Lambda 함수를 비동기식으로 호출할 수 있습니다. Lambda 함수에 전달하는 이벤트 객체는 인바운드 이메일 이벤트에 대한 메타데이터를 담고 있습니다. 이 메타데이터를 사용해 Amazon S3 버킷의 메시지 콘텐츠에 액세스할 수도 있습니다.

메일 흐름을 실제로 제어하고 싶다면 Lambda 함수를 동기식으로 호출해야 합니다(즉, RequestResponse 호출 유형 사용). 그러면 Lambda 함수가 두 개의 인수가 있는 callback 메서드를 호출합니다. 첫 번째 인수는 null이고 두 번째 인수는 STOP_RULE, STOP_RULE_SET 또는 CONTINUE로 설정된 disposition 속성입니다. 두 번째 인수가 null이거나 유효한 disposition 속성이 없는 경우, CONTINUE 실행 시와 마찬가지로 메일 흐름이 계속되어 작업과 규칙이 순서대로 처리됩니다.

예를 들어 Lambda 함수 코드의 끝에 다음 줄을 추가하면 수신 규칙 세트 처리를 중단시킬 수 있습니다.

callback( null, { "disposition" : "STOP_RULE_SET" });

AWS Lambda 코드 샘플은 다음(Lambda 함수 예제)을 참조하세요. 고급 사용 사례 예시는 다음(사용 사례)을 참조하세요.

입력 형식

Amazon SES는 JSON 형식으로 Lambda 함수에 정보를 전달합니다. 이 최고 레벨 객체는 Records 배열을 포함하며, 이 배열에는 eventSource, eventVersion, ses 속성이 들어 있습니다. ses 객체에는 receiptmail 객체가 있고, 알림 내용에서 설명한 Amazon SNS 알림과 형식이 동일합니다.

Amazon SES가 Lambda로 전달하는 데이터에는 메시지에 대한 메타데이터와 여러 이메일 헤더가 포함됩니다. 그러나 메시지의 본문은 포함되어 있지 않습니다.

다음은 Amazon SES가 Lambda 함수에 제공하는 입력 데이터의 구조를 세부적으로 나타낸 것입니다.

{ "Records": [ { "eventSource": "aws:ses", "eventVersion": "1.0", "ses": { "receipt": { <same contents as SNS notification> }, "mail": { <same contents as SNS notification> } } } ] }

반환 값

Lambda 함수는 다음 값 중 하나를 반환하여 메일 흐름을 제어합니다.

  • STOP_RULE - 현재 수신 규칙의 작업 수행은 중단하되 다음 수신 규칙을 처리할 수 있습니다.

  • STOP_RULE_SET - 작업 또는 수신 규칙 처리를 완전히 중단합니다.

  • CONTINUE 또는 기타 무효 값 - 다음 작업과 수신 규칙을 처리할 수 있습니다.

다음 주제에서는 수신 메일 이벤트 샘플, 고급 사용 사례 및 AWS Lambda 코드 예제를 다룹니다.