Отправка сообщения в раздел 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 нет

Использование

Примечания об использовании

Поддержка 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>

Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.