Отправка сообщения в раздел Pub/Sub
ОБЛАСТЬ ПРИМЕНЕНИЯ: Разработчик | Премия
Политика publish-to-dapr
указывает шлюзу Управление API отправить сообщение в раздел публикации и подписки Dapr. Политика достигает этого путем выполнения HTTP-запроса POST, http://localhost:3500/v1.0/publish/{{pubsub-name}}/{{topic}}
замены параметров шаблона и добавления содержимого, указанного в инструкции политики.
Предполагается, что Dapr выполняется в контейнере расширения в том же pod, что и шлюз. Среда выполнения Dapr реализует семантику публикации и подписки. Узнайте больше об интеграции Dapr с Управление API.
Примечание.
Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Узнайте, как устанавливать или изменять политики службы управления API.
Правило политики
<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>
Атрибуты
Атрибут | Description | Обязательное поле | По умолчанию. |
---|---|---|---|
pubsub-name | Имя целевого компонента раздела публикации и подписки. Сопоставляется с параметром pubsubname в Dapr. topic В противном случае значение атрибута должно находиться в виде pubsub-name/topic-name . Допустимы выражения политики. |
No | нет |
topic | Имя раздела. Сопоставляется с параметром topic в Dapr. Допустимы выражения политики. | Да | Н/П |
ignore-error | Если задано значение true , политика не будет запускать раздел on-error при получении ошибки из среды выполнения Dapr. Выражения политики не допускаются. |
No | false |
response-variable-name | Имя записи коллекции переменных, используемой для хранения ответа из среды выполнения Dapr. Выражения политики не допускаются. | No | нет |
timeout | Время (в секундах) ожидания ответа от среды выполнения Dapr. Может быть задано в диапазоне от 1 до 240 секунд. Допустимы выражения политики. | No | 5 |
JSON | Обработчик шаблонов, используемый для преобразования содержимого сообщения. Единственное поддерживаемое значение — Liquid. | No | нет |
тип_содержимого | Тип содержимого сообщения. Единственное поддерживаемое значение — application/json. | No | нет |
Использование
- Разделы политики: inbound.
- Области политики: global, product, API, operation.
- Шлюзы: локальное размещение
Примечания об использовании
Поддержка Dapr должна быть включена в локальном шлюзе.
Пример
В примере ниже показана отправка текста текущего запроса в раздел new компонента публикации и подписки orders. Ответ, полученный от среды выполнения Dapr, хранится в записи dapr-response коллекции Variables в объекте context.
Если среда выполнения Dapr не может найти целевой раздел и возвращает ошибку, то активируется раздел on-error. Ответ, полученный от среды выполнения Dapr, возвращается вызывающему объекту полностью и без изменений. В противном случае возвращается ответ по умолчанию 200 OK
.
Раздел backend пуст, и запрос не перенаправляется к серверной части.
<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
- Полный перечень операторов политик и их параметров см. в справочнике по политикам.
- Выражения политики
- Настройка или изменение политик
- Повторное использование конфигураций политик
- Репозиторий фрагментов политик
- Создание политик с помощью Microsoft Copilot в Azure