Azure API Management에서 Azure Event Hubs에 이벤트를 기록하는 방법
Azure Event Hubs는 초당 수백만 개의 이벤트를 수집할 수 있는 확장성이 뛰어난 데이터 수집 서비스이므로 연결된 디바이스와 애플리케이션이 생성하는 대량의 데이터를 처리하고 분석할 수 있습니다. Event Hubs는 이벤트 파이프라인에 대한 "현관"의 역할을 하고 데이터가 이벤트 허브에 수집되면 실시간 분석 공급자 또는 일괄 처리/스토리지 어댑터를 사용하여 변환 및 저장될 수 있습니다. Event Hubs는 이러한 이벤트를 소비하는 데에서 이벤트 스트림의 프로덕션을 분리하므로 이벤트 소비자가 자신의 개인 일정에 이벤트를 액세스할 수 있습니다.
이 문서에서는 Azure Event Hubs를 사용하여 API Management 이벤트를 로그하는 방법을 설명합니다.
Azure 이벤트 허브 만들기
Event Hub를 만들고 Event Hub 간에 이벤트를 송신 및 수신해야 하는 연결 문자열을 가져오는 방법에 대한 자세한 내용은 Azure Portal을 사용하여 Event Hubs 네임스페이스 및 Event Hub 만들기를 참조하세요.
참고
이벤트 허브 리소스는 API Management 리소스와 다른 구독 또는 다른 테넌트에 있을 수 있습니다.
API Management 로거 만들기
이제 이벤트 허브를 만들었으므로 다음 단계는 API Management 서비스에서 로거 를 구성하여 이벤트 허브에 이벤트를 기록할 수 있도록 하는 것입니다.
API Management 로거는 API Management REST API를 사용하여 구성됩니다. 자세한 요청 예제는 로거를 만드는 방법을 참조하세요.
log-to-eventhub 정책 구성
API Management에서 로거를 구성한 후에는 원하는 이벤트를 로깅하도록 log-to-eventhub 정책을 구성할 수 있습니다. log-to-eventhub 정책은 인바운드 정책 섹션 또는 아웃바운드 정책 섹션에서 사용할 수 있습니다.
- APIM 인스턴스로 이동합니다.
- API 탭을 선택합니다.
- 정책을 추가하려는 API를 선택합니다. 이 예제에서는 무제한 제품의 Echo API에 정책을 추가합니다.
- 모든 작업을 선택합니다.
- 화면 맨 위에서 디자인 탭을 선택합니다.
- 인바운드 또는 아웃바운드 처리 창에서 삼각형(연필 옆에 있는)을 클릭합니다.
- 코드 편집기를 선택합니다. 자세한 내용은 정책을 설정하거나 편집하는 방법을 참조하세요.
- 커서를
inbound
또는outbound
정책 섹션에 둡니다. - 오른쪽 창에서 고급 정책>EventHub에 대한 로그를 선택합니다. 그러면
log-to-eventhub
정책 문 템플릿을 삽입합니다.
<log-to-eventhub logger-id="logger-id">
@{
return new JObject(
new JProperty("EventTime", DateTime.UtcNow.ToString()),
new JProperty("ServiceName", context.Deployment.ServiceName),
new JProperty("RequestId", context.RequestId),
new JProperty("RequestIp", context.Request.IpAddress),
new JProperty("OperationName", context.Operation.Name)
).ToString();
}
</log-to-eventhub>
이전 단계에서 로거를 만들기 위해 요청 URL의 {loggerId}
에 사용한 값으로 logger-id
를 바꿉니다.
문자열을 log-to-eventhub
요소에 대한 값으로 반환하는 모든 식을 사용할 수 있습니다. 이 예제에서는 날짜 및 시간, 서비스 이름, 요청 ID, 요청 IP 주소, 작업 이름을 포함하는 JSON 형식의 문자열이 로깅됩니다.
저장 을 클릭하여 업데이트된 정책 구성을 저장합니다. 저장되는 즉시 정책이 활성화되며 지정된 이벤트 허브에 이벤트가 기록됩니다.
참고
이 API Management 정책에서 이벤트 허브로 보낼 수 있는 지원되는 최대 메시지 크기는 200KB(킬로바이트)입니다. 이벤트 허브로 전송된 메시지가 200KB보다 큰 경우 자동으로 잘리고, 잘린 메시지는 이벤트 허브로 전송됩니다.
Azure Stream Analytics를 사용하여 Event Hubs의 로그 미리 보기
Azure Stream Analytics 쿼리를 사용하여 Event Hubs의 로그를 미리 볼 수 있습니다.
- Azure Portal에서 로거가 이벤트를 전송하는 이벤트 허브로 이동합니다.
- 기능에서 데이터 처리 탭을 선택합니다.
- 이벤트에서 실시간 인사이트 사용 카드에서 탐색을 선택합니다.
- 입력 미리 보기 탭에서 로그를 미리 볼 수 있습니다. 표시된 데이터가 최신 상태가 아니면 새로 고침을 선택하여 최신 이벤트를 확인합니다.
다음 단계
- Azure Event Hubs에 대해 자세히 알아보기
- API Management 및 Event Hubs 통합에 대해 자세히 알아보기
- Azure Application Insights와의 통합에 대해 자세히 알아보기