다음을 통해 공유


Azure API Management에서 Azure Service Bus로 메시지를 보내는 방법

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

이 문서에서는 정책 기반 통합을 사용하여 API Management에서 Azure Service Bus로 메시지를 보내는 방법을 설명합니다. API Management를 사용하여 Service Bus에 메시지를 보내는 안전하고 확장 가능한 방법을 제공합니다.

메시징을 위해 Service Bus와 API Management의 통합 다이어그램

Azure Service Bus 는 애플리케이션과 서비스를 분리하도록 설계된 완전 관리형 엔터프라이즈 메시징 서비스로, 분산 시스템 간에 안정적인 클라우드 메시징을 가능하게 합니다. 시스템에서 일대일 통신을 위해 메시지를 메시지 큐 로 보내고 게시/구독 패턴에 대한 토픽 을 보내는 AMQP(고급 메시지 큐 프로토콜)를 지원합니다. Service Bus는 하이브리드 클라우드 환경에서 비동기 작업, 부하 평준화 또는 통합이 필요한 시나리오에 적합합니다. 자세한 내용은 Azure Service Bus 설명서를 참조하세요.

API Management는 정책 기반 통합을 통해 다음을 제공합니다.

  • 외부 클라이언트에 대한 보안 REST 기반 메시징 - 네이티브 AMQP 지원이 없는 외부 시스템 및 모바일 앱은 API Management를 통해 표준 HTTP/REST API를 사용하여 Service Bus로 메시지를 보낼 수 있습니다. 이 방법은 사용자 지정 중개자의 필요성을 제거하여 통합을 간소화하고 보안을 강화합니다.
  • 관리되는 타사 통합 - 엔터프라이즈는 기본 제공 관리 ID 인증을 사용하여 API Management를 통해 Service Bus 엔드포인트를 노출하여 파트너 및 타사 애플리케이션에 대해 안전하고 관찰 가능한 메시징 패턴을 사용할 수 있습니다.
  • 모델 실행 및 잊기 - Service Bus에 메시지를 보내는 데 다른 백 엔드 서비스가 필요하지 않으며, 더 간단한 아키텍처와 운영 오버헤드를 줄일 수 있습니다.

비고

  • Service Bus와 API Management의 통합은 현재 미리 보기로 제공됩니다.
  • Service Bus로 메시지 보내기만 지원됩니다.

비고

현재 이 기능은 작업 영역에서 사용할 수 없습니다.

필수 조건

Service Bus에 대한 액세스 구성

Service Bus에 메시지를 보내려면 API Management 인스턴스에 대한 관리 ID를 구성해야 합니다.

  1. API Management 인스턴스에서 API Management에 시스템 할당 또는 사용자 할당 관리 ID를 사용하도록 설정합니다.

    • 사용자 할당 관리 ID를 사용하도록 설정하는 경우 ID의 클라이언트 ID를 기록해 둡니다.
  2. Service Bus의 Azure Service Bus 데이터 보낸 사람 역할에 ID 할당 역할을 할당하려면 Azure Portal 또는 다른 Azure 도구를 사용합니다.

send-service-bus-message 정책을 구성

원하는 큐 또는 토픽으로 메시지를 보내도록 send-service-bus-message 정책을 구성합니다.

예를 들어 인바운드 정책 섹션의 정책을 사용하여 send-service-bus-message 게이트웨이가 수신할 때 API 요청의 요청 본문을 보냅니다.

  1. Azure Portal에서 API Management 인스턴스로 이동합니다.

  2. 왼쪽 메뉴에서 API를 선택한 다음, 정책을 추가할 API를 선택합니다.

  3. 모든 작업을 선택합니다.

  4. 화면 위쪽에서 디자인 탭을 선택합니다.

  5. 인바운드 처리 또는 아웃바운드 처리 창에서 (코드 편집기) 아이콘을 </> 선택합니다. 자세한 내용은 정책을 설정하거나 편집하는 방법을 참조하세요.

  6. inbound 또는 outbound 정책 섹션에 커서를 놓습니다.

  7. 정책 구성에 send-service-bus-message 정책을 추가한 다음 필요에 따라 특성 및 요소를 구성합니다.

    예를 들어 요청 본문을 메시지로 보냅니다.

    <send-service-bus-message queue-name="my-queue">
        <payload>@(context.Request.Body.As<string>())</payload>
    </send-service-bus-message>
    

    문자열을 반환하는 모든 식을 요소의 값 payload 으로 사용할 수 있습니다.

  8. 저장을 선택하여 업데이트된 정책 구성을 저장합니다. 저장하자마자 정책이 활성화되고 지정된 서비스 버스로 메시지가 전송됩니다.