이벤트 허브에 기록
적용 대상: 모든 API Management 계층
log-to-eventhub
정책은 로거 엔터티가 정의한 이벤트 허브에 지정된 형식으로 메시지를 보냅니다. 이름에서 알 수 있듯이 이 정책은 온라인 또는 오프라인 분석을 위해 선택한 요청 또는 응답 컨텍스트 정보를 저장하는 데 사용됩니다.
참고 항목
이벤트 허브 구성 및 이벤트 로깅에 대한 단계별 가이드는 Azure Event Hubs로 API Management 이벤트를 기록하는 방법을 참조하세요.
참고 항목
정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.
정책 문
<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
Expression returning a string to be logged
</log-to-eventhub>
특성
특성 | 설명 | 필수 항목 | 기본값 |
---|---|---|---|
logger-id | API Management 서비스에 등록된 로거 ID입니다. 정책 식은 허용되지 않습니다. | 예 | 해당 없음 |
partition-id | 메시지가 전송된 파티션의 인덱스를 지정합니다. 정책 식은 허용되지 않습니다. | 선택 사항. partition-key 가 사용되는 경우에는 사용하지 마세요. |
해당 없음 |
partition-key | 메시지가 전송된 파티션 할당에 사용된 값을 지정합니다. 정책 식이 허용됩니다. | 선택 사항. partition-id 가 사용되는 경우에는 사용하지 마세요. |
해당 없음 |
사용
- 정책 섹션: inbound, outbound, backend, on-error
- 정책 범위: global, product, API, operation
- 게이트웨이: 클래식, v2, 사용량, 자체 호스팅
사용법 참고 사항
- 정책은 Application Insights 샘플링의 영향을 받지 않습니다. 정책의 모든 호출이 기록됩니다.
- 이 정책에서 이벤트 허브로 보낼 수 있는 지원되는 최대 메시지 크기는 200KB(킬로바이트)입니다. 더 큰 메시지는 이벤트 허브로 전송되기 전에 자동으로 200KB로 잘립니다.
예시
Event Hubs에 기록할 값으로 모든 문자열을 사용할 수 있습니다. 이 예제에서는 모든 인바운드 호출에 대한 날짜 및 시간, 배포 서비스 이름, 요청 ID, IP 주소, 작업 이름이 contoso-logger
ID로 등록된 이벤트 허브 로거에 로그됩니다.
<policies>
<inbound>
<log-to-eventhub logger-id ='contoso-logger'>
@( string.Join(",", DateTime.UtcNow, context.Deployment.ServiceName, context.RequestId, context.Request.IpAddress, context.Operation.Name) )
</log-to-eventhub>
</inbound>
<outbound>
</outbound>
</policies>
관련 정책
관련 콘텐츠
정책 작업에 대한 자세한 내용은 다음을 참조하세요.
- 자습서: API 변환 및 보호
- 정책 문 및 해당 설정에 대한 전체 목록에 대한 정책 참조
- 정책 식
- 정책 설정 또는 편집
- 정책 구성 재사용
- 정책 코드 조각 리포지토리
- Azure의 Microsoft Copilot을 사용하는 작성자 정책