Pub/Sub 토픽으로 메시지 보내기
적용 대상: 개발자 | 프리미엄
publish-to-dapr
정책은 API Management 게이트웨이가 Dapr 게시/구독 토픽에 메시지를 보내도록 지시합니다. 정책에서는 템플릿 매개 변수를 바꾸는 http://localhost:3500/v1.0/publish/{{pubsub-name}}/{{topic}}
에 HTTP POST가 요청하게 하고 정책문에 지정된 콘텐츠를 추가함으로써 이 작업을 수행합니다.
이 정책에서는 Dapr 런타임이 게이트웨이와 동일한 pod의 사이드카 컨테이너에서 실행되고 있다고 가정합니다. Dapr 런타임에서는 Pub/Sub 의미 체계를 구현합니다. API Management의 Dapr 통합에 대해 자세히 알아보기
참고 항목
정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.
정책 문
<publish-to-dapr pubsub-name="pubsub-name" topic="topic-name" ignore-error="false|true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
<!-- message content -->
</publish-to-dapr>
특성
특성 | 설명 | 필수 항목 | 기본값 |
---|---|---|---|
pubsub-name | 대상 PubSub 구성 요소의 이름입니다. Dapr에서 pubsubname 매개 변수에 매핑됩니다. 표시되지 않는 경우 topic 특성 값은 pubsub-name/topic-name 형식이어야 합니다. 정책 식이 허용됩니다. |
아니요 | 없음 |
토픽 | 토픽의 이름입니다. Dapr에서 토픽 매개 변수에 매핑됩니다. 정책 식이 허용됩니다. | 예 | 해당 없음 |
ignore-error | true 로 설정하는 경우에는 Dapr 런타임에서 오류를 수신하는 동안 “오류 발생” 섹션을 트리거하지 않도록 정책에 지시합니다. 정책 식은 허용되지 않습니다. |
아니요 | false |
response-variable-name | Dapr 런타임의 응답을 저장하는 데 사용할 변수 컬렉션 항목의 이름입니다. 정책 식은 허용되지 않습니다. | 아니요 | 없음 |
시간 제한 | Dapr 런타임이 응답할 때까지 대기하는 시간(초)입니다. 범위는 1 ~ 240초입니다. 정책 식이 허용됩니다. | 아니요 | 5 |
템플릿 | 메시지 콘텐츠를 변환하는 데 사용할 템플릿 엔진입니다. “액체”는 유일하게 지원되는 값입니다. | 아니요 | 없음 |
content-type | 메시지 콘텐츠의 유형입니다. “application/json”은 유일하게 지원되는 값입니다. | 아니요 | 없음 |
사용
사용법 참고 사항
Dapr 지원은 자체 호스팅 게이트웨이에서 사용하도록 설정해야 합니다.
예시
다음 예제에서는 현재 요청의 본문을 “orders” Pub/Sub 구성 요소의 “new” 토픽으로 보내는 방법을 보여 줍니다. Dapr 런타임에서 받은 응답은 컨텍스트 개체의 Variables 컬렉션의 “Dapr 응답” 항목에 저장됩니다.
예를 들어, Dapr 런타임이 대상 토픽을 찾을 수 없는 경우 및 오류로 응답하는 경우에는 “오류 발생” 섹션이 트리거됩니다. Dapr 런타임에서 받은 응답은 호출자 그대로 반환됩니다. 대상 토픽을 찾은 경우 기본 200 OK
응답이 반환됩니다.
“백 엔드” 섹션이 비어 있고 요청이 백 엔드로 전달되지 않습니다.
<policies>
<inbound>
<base />
<publish-to-dapr
pubsub-name="orders"
topic="new"
response-variable-name="dapr-response">
@(context.Request.Body.As<string>())
</publish-to-dapr>
</inbound>
<backend>
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
<return-response response-variable-name="pubsub-response" />
</on-error>
</policies>
관련 정책
관련 콘텐츠
정책 작업에 대한 자세한 내용은 다음을 참조하세요.
- 자습서: API 변환 및 보호
- 정책 문 및 해당 설정에 대한 전체 목록에 대한 정책 참조
- 정책 식
- 정책 설정 또는 편집
- 정책 구성 재사용
- 정책 코드 조각 리포지토리
- Azure API Management 정책 도구 키트
- Azure의 Microsoft Copilot을 사용하는 작성자 정책