Поделиться через


Активация выходной привязки

ОБЛАСТЬ ПРИМЕНЕНИЯ: Разработчик | Премия

Политика invoke-dapr-binding указывает шлюзу Управление API активировать исходящую привязку Dapr. Политика выполняет это путем отправки HTTP-запроса POST на http://localhost:3500/v1.0/bindings/{{bind-name}}, замену параметра шаблона и добавление содержимого, указанного в инструкции политики.

Предполагается, что Dapr выполняется в контейнере расширения в том же pod, что и шлюз. Среда выполнения Dapr отвечает за вызов внешнего ресурса, представленного привязкой. Узнайте больше об интеграции Dapr с Управление API.

Примечание.

Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Узнайте, как устанавливать или изменять политики службы управления API.

Правило политики

<invoke-dapr-binding name="bind-name" operation="op-name" ignore-error="false | true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
    <metadata>
        <item key="item-name"><!-- item-value --></item>
    </metadata>
    <data>
        <!-- message content -->
    </data>
</invoke-dapr-binding>

Атрибуты

Атрибут Description Обязательное поле По умолчанию.
name Имя целевой привязки. Должно совпадать с именем привязок, определенных в Dapr. Допустимы выражения политики. Да Н/П
Операция Имя целевой операции (для конкретной привязки). Сопоставляется со свойством operation в Dapr. Выражения политики не допускаются. No нет
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 нет

Элементы

Элемент Description Обязательное поле
metadata Метаданные конкретной привязки в виде пар "ключ/значение". Сопоставляется со свойством metadata в Dapr. No
. Содержимое сообщения. Сопоставляется со свойством data в Dapr. Допустимы выражения политики. No

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

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

Поддержка Dapr должна быть включена в локальном шлюзе.

Пример

В следующем примере показана активация исходящей привязки с именем external-systems с именем create, метаданные, состоящие из двух элементов key/value с именем source и client-ip, а текст, поступающий из исходного запроса. Ответ, полученный от среды выполнения Dapr, сохраняется в записи bind-response коллекции Variables в объекте context.

Если среда выполнения Dapr по какой-либо причине возвращает ошибку, то активируется раздел on-error, а ответ, полученный от среды выполнения Dapr, возвращается вызывающему объекту полностью и без изменений. В противном случае возвращается ответ по умолчанию 200 OK.

Раздел backend пуст, и запрос не перенаправляется к серверной части.

<policies>
     <inbound>
        <base />
        <invoke-dapr-binding
                      name="external-system"
                      operation="create"
                      response-variable-name="bind-response">
            <metadata>
                <item key="source">api-management</item>
                <item key="client-ip">@(context.Request.IpAddress )</item>
            </metadata>
            <data>
                @(context.Request.Body.As<string>() )
            </data>
        </invoke-dapr-binding>
    </inbound>
    <backend>
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
        <return-response response-variable-name="bind-response" />
    </on-error>
</policies>

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