

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

# Lambda 이벤트 필터링 구현 모범 사례
<a name="best-practices-event-filtering"></a>

다음은 [Amazon SQS 이벤트 소스에 대한 Lambda 이벤트 필터링](https://aws.amazon.com//about-aws/whats-new/2021/11/aws-lambda-event-filtering-amazon-sqs-dynamodb-kinesis-sources/) 구성 모범 사례입니다.
+ [Lambda 서비스의 필터 규칙 구문](https://docs.aws.amazon.com//lambda/latest/dg/invocation-eventfiltering.html#filtering-syntax), 특히 [Lambda가 Amazon SQS에 사용하는 필터 규칙 구문](https://docs.aws.amazon.com//lambda/latest/dg/invocation-eventfiltering.html#filtering-sqs)을 숙지하세요. 그런 다음 비즈니스 로직에 따라 이벤트 필터를 설계합니다. 이벤트 필터의 효과는 필요한 경우에만 Lambda 함수를 호출할 수 있는 기능에 따라 달라집니다. 이를 위해서는 필터 규칙에 올바른 구문을 적용하여 규칙이 애플리케이션 비즈니스 로직의 요구 사항을 반영하도록 해야 합니다.
+ 애플리케이션의 비즈니스 로직이 더 복잡한 일련의 필터 조건을 요구하는 상황에서는 다단계 필터링을 사용해야 합니다. 자세한 정보 및 예제 데이터 객체는 **AWS Lambda 개발자 안내서의 [Lambda 이벤트 필터링](https://docs.aws.amazon.com//lambda/latest/dg/invocation-eventfiltering.html#multi-level-filtering)을 참조하세요.
+ Amazon SQS 요청 파라미터에서 **MessageRetentionPeriod** 값을 정의하여 Amazon SQS에서 처리되지 않은 메시지를 보관할 기간을 제한합니다. 일반적으로 유효한 메시지를 처리하는 데 걸리는 시간을 식별하여 정의한 값이 애플리케이션의 사용 사례에 맞는지 확인합니다. 자세한 내용은 *Amazon SQS API Reference*의 [SetQueueAttributes](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html)를 참조하세요. 이 가이드의 [일치하지 않는 메시지 누적 방지](#avoiding-non-matching-message-accumulation) 섹션도 참조하세요.
+ Lambda 함수를 사용할 수 없어 유효한 메시지를 처리할 수 없는 상황에서는 Amazon SQS DLQ(Dead Letter Queue)를 구성합니다. 이 추가 Amazon SQS 대기열은 서버리스 애플리케이션 아키텍처에서 snowball 방지 패턴 생성을 방지하는 데 도움이 됩니다. 자세한 내용은 이 가이드의 [Snowball 안티 패턴 방지](best-practices-partial-batch-responses.md#snowball-anti-patterns) 섹션을 참조하세요.
+ Lambda 서비스에서 이벤트 필터 기능을 활성화해야 합니다. Lambda 함수를 처음 생성할 때 기능을 활성화해야 합니다. 지침은 **AWS Lambda 개발자 안내서의 [이벤트 소스 매핑에 필터 기준 연결(콘솔)](https://docs.aws.amazon.com//lambda/latest/dg/invocation-eventfiltering.html#filtering-console) 또는 [이벤트 소스 매핑에 필터 기준 연결(AWS CLI)](https://docs.aws.amazon.com//lambda/latest/dg/invocation-eventfiltering.html#filtering-cli)을 참조하세요.

## 일치하지 않는 메시지 누적 방지
<a name="avoiding-non-matching-message-accumulation"></a>

이벤트 필터가 적절하게 설계되지 않은 경우 많은 양의 관련 없는 메시지가 Lambda 함수의 Amazon SQS 대기열을 빠르게 압도할 수 있습니다. 이 시나리오에서 Lambda 함수는 관련 메시지가 거의 없더라도 초기 메시지 배치에서 모든 메시지를 처리합니다. 함수가 관련 없는 추가 메시지를 처리하는 데 시간이 더 오래 걸리지만 Amazon SQS 대기열에는 관련 없는 메시지가 더 많이 추가됩니다. **MessageRetentionPeriod** 파라미터가 구성되지 않은 경우 이러한 새 메시지로 인해 함수가 다음 메시지 배치를 처리하는 데 훨씬 더 오래 걸립니다. 시간이 지나면 소스 대기열에 있는 관련 없는 메시지 수가 유효한 메시지 수보다 많아집니다.

**MessageRetentionPeriod** 파라미터는 Amazon SQS 대기열에 처리되지 않은 메시지를 보관하는 기간(초 단위)을 제한합니다. 예를 들어 **MessageRetentionPeriod** 값이 3,600초이면 1시간 후에 대기열에서 처리되지 않은 모든 메시지가 제거됩니다.

지침은 *Amazon SQS API Reference*의 [SetQueueAttributes](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html)를 참조하세요.