Amazon MSK 이벤트 소스에 대한 Lambda 이벤트 소스 매핑 생성
이벤트 소스 매핑을 생성하려면 Lambda 콘솔, AWS Command Line Interface(CLI) 또는 AWS SDK
참고
이벤트 소스 매핑을 생성하면 Lambda는 MSK 클러스터가 포함된 프라이빗 서브넷에 하이퍼플레인 ENI를 생성하여 Lambda가 보안 연결을 설정할 수 있도록 합니다. 이 하이퍼플레인 ENI는 Lambda 함수가 아닌 MSK 클러스터의 서브넷과 보안 그룹 구성을 사용합니다.
다음 콘솔 단계에서는 Amazon MSK 클러스터를 Lambda 함수의 트리거로 추가합니다. 그러면 내부적으로 이벤트 소스 매핑 리소스가 생성됩니다.
Lambda 함수에 Amazon MSK 트리거를 추가하려면(콘솔)
-
Lambda 콘솔의 함수 페이지
를 엽니다. -
Amazon MSK 트리거를 추가할 Lambda 함수의 이름을 선택합니다.
-
함수 개요(Function overview)에서 트리거 추가(Add trigger)를 선택합니다.
-
트리거 구성에서 MSK를 선택합니다.
-
Kafka 클러스터 세부 정보를 지정하려면 다음을 수행합니다.
-
MSK 클러스터에 해당 클러스터를 선택합니다.
-
주제 이름에 메시지를 사용할 Kafka 주제의 이름을 입력합니다.
-
소비자 그룹 ID에서 가입할 Kafka 소비자 그룹의 ID(해당되는 경우)를 입력합니다. 자세한 내용은 Lambda에서 사용자 지정이 가능한 소비자 그룹 ID 섹션을 참조하세요.
-
-
클러스터 인증에 대해 필요에 따라 구성합니다. 클러스터 인증에 대한 자세한 내용은 Lambda에서 클러스터 인증 방법 구성 섹션을 참조하세요.
-
연결을 설정할 때 Lambda가 MSK 클러스터로 인증을 수행하도록 하려면 인증 사용을 켭니다. 인증이 권장됩니다.
-
인증을 사용하는 경우 인증 방법에서 사용할 인증 방법을 선택합니다.
-
인증을 사용하는 경우 Secrets Manager 키에서 클러스터에 액세스하는 데 필요한 인증 자격 증명이 포함된 Secrets Manager 키를 선택합니다.
-
-
이벤트 폴러 구성에서 필요에 따라 구성합니다.
-
생성 직후 트리거를 활성화하려면 트리거 활성화를 선택합니다.
-
이벤트 소스 매핑에 대해 프로비저닝된 모드를 구성할지 여부를 선택합니다. 자세한 내용은 Lambda에서의 이벤트 폴러 스케일링 모드 섹션을 참조하세요.
-
프로비저닝된 모드를 구성하는 경우 최소 이벤트 폴러 값, 최대 이벤트 폴러 값 또는 둘 다 입력합니다.
-
-
시작 위치에서 Lambda가 스트림에서 읽기를 시작하는 방법을 선택합니다. 자세한 내용은 Lambda에서의 폴링 및 스트림 시작 위치 섹션을 참조하세요.
-
-
배치 처리에서 필요에 따라 구성합니다. 일괄 처리에 대한 자세한 내용은 일괄 처리 동작 섹션을 참조하세요.
-
배치 크기(Batch size)에 단일 배치에서 검색할 최대 메시지 수를 입력합니다.
-
배치 창에서 Lambda가 함수를 간접적으로 호출하기 전에 레코드를 수집하는 데 걸리는 최대 시간(초)을 입력합니다.
-
-
필터링에서 필요에 따라 구성합니다. 필터링에 대한 자세한 내용은 Amazon MSK 이벤트 소스를 통해 이벤트 필터링 사용 섹션을 참조하세요.
-
필터 기준에서 필터 기준 정의를 추가하여 이벤트를 처리할지 여부를 결정합니다.
-
-
장애 처리에서 필요에 따라 구성합니다. 장애 처리에 대한 자세한 내용은 Amazon MSK 이벤트 소스에 대해 폐기된 배치 캡처 섹션을 참조하세요.
-
장애 시 대상에서 장애 시 대상의 ARN을 지정합니다.
-
-
태그에 이 이벤트 소스 매핑과 연결할 태그를 입력합니다.
-
트리거를 생성하려면 추가를 선택합니다.
create-event-source-mappingLATEST
메시지부터 시작하여 Lambda 함수 my-msk-function
을 AWSKafkaTopic
주제에 매핑하는 이벤트 소스 매핑을 생성합니다. 또한 이 명령은 SourceAccessConfiguration 객체를 사용하여 클러스터에 연결할 때 SASL/SCRAM 인증을 사용하도록 Lambda에 지시합니다.
aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function --source-access-configurations '[{"Type": "SASL_SCRAM_512_AUTH","URI": "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret"}]'
클러스터가 mTLS authentication을 사용하는 경우 SourceAccessConfiguration 객체를 포함하며 이는 CLIENT_CERTIFICATE_TLS_AUTH
및 Secrets Manager 키 ARN을 지정합니다. 다음 명령을 참조하세요.
aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function --source-access-configurations '[{"Type": "CLIENT_CERTIFICATE_TLS_AUTH","URI": "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret"}]'
클러스터가 IAM 인증을 사용하는 경우 SourceAccessConfiguration 객체가 필요하지 않습니다. 다음 명령을 참조하세요.
aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function