다음을 통해 공유


Service Bus 메시지 보내기

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

정책은 send-service-bus-message Azure Service Bus 큐 또는 토픽에 메시지를 보냅니다. API 요청은 선택적으로 백엔드 서비스로 전달될 수 있습니다.

비고

비고

정책 명세서에 제공된 순서대로 정책의 요소와 자식 요소를 설정합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.

정책 문

<send-service-bus-message queue-name="service bus queue" topic-name="service bus topic"
      namespace="FQDN of service bus namespace" client-id="ID of user-assigned managed identity">
        <message-properties>
                <message-property name="property-name">property-value</message-property>
                <!-- if there are multiple properties, then add additional message-property elements -->
        </message-properties>
        <payload>"message content"</payload>
</send-service-bus-message>

Attributes

특성 Description 필수 Default
queue-name 메시지를 보낼 Service Bus 큐의 이름을 지정합니다. 정책 식 및 명명된 값이 허용됩니다. 지정 queue-name 하거나 topic-name 지정해야 합니다. 아니오 N/A
topic-name 메시지를 보낼 Service Bus 토픽의 이름을 지정합니다. 정책 식 및 명명된 값이 허용됩니다. 지정 queue-name 하거나 topic-name 지정해야 합니다. 아니오 N/A
namespace Service Bus 네임스페이스의 정규화된 도메인 이름을 지정합니다. 정책 식 및 명명된 값이 허용됩니다. 아니오 N/A
client-id Service Bus를 사용하여 인증할 사용자 할당 관리 ID의 클라이언트 ID를 지정합니다. ID에 Azure Service Bus 데이터 발신자 역할이 할당되어야 합니다. 정책 식 및 명명된 값이 허용됩니다. 지정하지 않으면 시스템 할당 ID가 사용됩니다. 아니오 N/A

요소들

요소 Description 필수
payload Service Bus로 보낼 메시지 페이로드를 지정합니다. 정책 식 및 명명된 값이 허용됩니다. Yes
message-properties 메시지 페이로드와 함께 전달할 메타데이터를 지정하는 하위 요소의 컬렉션 message-property 입니다. 각각 message-property 은 이름-값 쌍으로 구성됩니다. 정책 식 및 명명된 값이 허용됩니다. 아니오

Usage

사용 현황 정보

  • 메시지를 받는 Azure Service Bus 큐 또는 토픽을 미리 만들어야 합니다.
  • 이 정책은 정책 정의별로 여러 번 사용될 수 있습니다.

예시

Service Bus 큐에 메시지 보내기

이 예제에서는 요청 본문으로 구성된 메시지가 Service Bus 큐로 전송됩니다. API Management 인스턴스는 액세스에 사용자 할당 ID를 사용합니다. 그런 다음 요청이 백 엔드 서비스로 전달됩니다.

<policies>
    <inbound>
        <send-service-bus-message queue-name="orders" client-id="00001111-aaaa-2222-bbbb-3333cccc4444" namespace="my-service-bus.servicebus.windows.net">
           <payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
        </send-service-bus-message>
    </inbound>
    <backend>
        <forward-request timeout="60"/>
    </backend>
</policies>

Service Bus 토픽에 메시지 보내기

이 예제에서는 요청 본문으로 구성된 메시지가 Service Bus 토픽으로 전송됩니다. API Management 인스턴스는 액세스에 시스템 할당 ID를 사용합니다. 그런 다음 요청이 백 엔드 서비스로 전달됩니다.

<policies>
    <inbound>
        <send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
           <payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
        </send-service-bus-message>
    </inbound>
    <backend>
        <forward-request timeout="60"/>
    </backend>
</policies>

메시지 및 메타데이터 보내기

이 예제에서는 요청 본문으로 구성된 메시지가 Service Bus 토픽으로 전송되고 메시지 속성이 페이로드를 사용하여 메타데이터를 보내도록 설정됩니다. API Management 인스턴스는 액세스에 시스템 할당 ID를 사용합니다. 그런 다음 요청이 백 엔드 서비스로 전달됩니다.

<policies>
    <inbound>
        <send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
           <message-properties>
              <message-property name="Customer">Contoso</message-property>
           </message-properties>
           <payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
        </send-service-bus-message>
    </inbound>
    <backend>
        <forward-request timeout="60"/>
    </backend>
</policies>

메시지 보내기 및 즉시 반환

이 예제에서는 요청 본문으로 구성된 메시지가 Service Bus 토픽으로 전송됩니다. API Management 인스턴스는 액세스에 시스템 할당 ID를 사용합니다. 201 그러면 응답 상태 코드가 호출자에게 즉시 반환됩니다.

<policies>
    <inbound>
        <send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
           <payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
        </send-service-bus-message>
        <return-response>
            <set-status code="201" reason="Created!" />
        </return-response>
    </inbound>
</policies>

정책 작업에 대한 자세한 내용은 다음을 참조하세요.