다음을 통해 공유


서버 전송 이벤트에 대한 API 구성

적용 대상: 개발자 | 기본 | 기본 v2 | 표준 | 표준 v2 | 프리미엄

이 문서에서는 SSE(서버 전송 이벤트)를 구현하는 API Management에서 API를 구성하기 위한 지침을 제공합니다. SSE는 클라이언트가 연결을 설정한 후 HTTP를 통해 클라이언트에 데이터를 자동으로 스트리밍(푸시)하기 위한 HTML5 EventSource 표준을 기반으로 합니다.

API Management는 또한 WebSocket API에 대한 네이티브 지원을 제공하여 클라이언트와 서버 간에 단일하고 영구적인 양방향 연결을 유지합니다.

필수 조건

  • 기존 API Management 인스턴스. 구독이 아직 없다면 하나를 만듭니다.
  • SSE를 구현하는 API입니다. 지원되는 가져오기 방법 중 하나를 사용하여 API를 API Management 인스턴스로 가져오고 게시합니다.

SSE에 대한 지침

SSE를 구현하는 백 엔드 API에 도달하기 위해 API Management를 사용할 때 다음 지침을 따릅니다.

  • 장기 실행 HTTP 연결을 위한 서비스 계층 선택 - SSE는 특정 API Management 가격 책정 계층에서 지원되는 장기 실행 HTTP 연결에 의존합니다. 장기 실행 연결은 클래식 및 v2 API Management 계층에서 지원되지만 사용량 계층에서는 지원되지 않습니다.

  • 유휴 연결 유지 - 클라이언트와 백 엔드 간의 연결이 4분 이상 유휴 상태일 수 있는 경우 연결을 활성 상태로 유지하는 메커니즘을 구현합니다. 예를 들어, 연결 백 엔드에서 TCP keepalive 신호를 사용하도록 설정하거나 4분에 한 번 이상 클라이언트 쪽에서 트래픽을 보냅니다.

    이 구성은 API Management 인프라에서 사용되는 Azure Load Balancer에 의해 적용되는 4분의 유휴 세션 제한 시간을 재정의하는 데 필요합니다.

  • 클라이언트에 즉시 이벤트 전달 - 이벤트가 즉시 클라이언트에 전달되도록 forward-request정책에서 응답 버퍼링을 끕니다. 예시:

    <forward-request timeout="120" fail-on-error-status-code="true" buffer-response="false"/>
    
  • 응답을 버퍼링하는 다른 정책 피하기 - validate-content와 같은 특정 정책은 응답 콘텐츠를 버퍼링할 수도 있으므로 SSE를 구현하는 API와 함께 사용하면 안 됩니다.

  • Azure Monitor, Application Insights 및 Event Hubs에 대한 로깅 요청/응답 본문 방지 - 진단 설정을 사용하여 Azure Monitor 또는 Application Insights에 대한 API 요청 로깅을 구성할 수 있습니다. 진단 설정을 사용하면 요청 실행의 다양한 단계에서 요청/응답 본문을 기록할 수 있습니다. SSE를 구현하는 API의 경우 예기치 않은 버퍼링이 발생할 수 있으며 이로 인해 문제가 발생할 수 있습니다. 전역/모든 API 범위에서 구성된 Azure Monitor 및 Application Insights에 대한 진단 설정은 서비스의 모든 API에 적용됩니다. 필요에 따라 개별 API에 대한 설정을 재정의할 수 있습니다. Event Hubs에 로깅할 때는 log-to-eventhubs를 사용하여 요청/응답 로깅에 대한 컨텍스트 정보의 범위와 양을 구성합니다. SSE를 구현하는 API의 경우 Azure Monitor, Application Insights 및 Event Hubs에 대한 요청/응답 본문 로깅을 사용하지 않도록 설정해야 합니다.

  • 응답 캐싱 사용 안 함 - 클라이언트에 대한 알림이 시기적절하게 전달되도록 하려면 응답 캐싱이 사용하도록 설정되어 있지 않은지 확인합니다. 자세한 내용은 API Management 캐싱 정책을 참조하세요.

  • 부하 상태에서 API 테스트 - 일반적인 방법에 따라 부하 상태에서 API를 테스트하여 프로덕션에 들어가기 전에 성능 또는 구성 문제를 검색합니다.

다음 단계

  • API Management에서 정책 구성에 대해 자세히 알아봅니다.
  • API Management 용량에 대해 알아봅니다.