적용 대상: 개발자 | 기본 | 표준 | 프리미엄
정책은 send-service-bus-message Azure Service Bus 큐 또는 토픽에 메시지를 보냅니다. API 요청은 선택적으로 백엔드 서비스로 전달될 수 있습니다.
비고
- 이 정책은 현재 미리 보기로 제공됩니다.
- Azure Service Bus로 메시지를 보내기 위한 배경 및 필수 구성 요소는 Azure API Management에서 Azure Service Bus로 메시지를 보내는 방법을 참조하세요.
비고
정책 명세서에 제공된 순서대로 정책의 요소와 자식 요소를 설정합니다. 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>
관련 정책
관련 콘텐츠
정책 작업에 대한 자세한 내용은 다음을 참조하세요.
- 자습서: API 변환 및 보호
- 정책 문서와 설정의 전체 목록을 확인하려면 정책 참조를 참조하십시오.
- 정책 표현식
- 정책 설정 또는 편집
- 정책 구성 재사용
- 정책 코드 조각 리포지토리
- 정책 플레이그라운드 리포지토리
- Azure API Management 정책 도구 키트
- Copilot 지원을 받아 정책을 만들고, 설명하며, 문제를 해결하세요.