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

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

Политика 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>

Атрибуты

Атрибут Описание Обязательное поле По умолчанию.
имя Имя целевой привязки. Должно совпадать с именем привязок, определенных в Dapr. Допустимы выражения политики. Да Н/П
Операция Имя целевой операции (для конкретной привязки). Сопоставляется со свойством operation в Dapr. Выражения политики не допускаются. нет нет
ignore-error Если задано значение , чтобы true политика не активировала раздел on-error при получении ошибки из среды выполнения Dapr. Выражения политики не допускаются. нет false
response-variable-name Имя записи коллекции переменных, используемой для хранения ответа из среды выполнения Dapr. Выражения политики не допускаются. нет нет
таймаут Время (в секундах) ожидания ответа от среды выполнения Dapr. Может быть задано в диапазоне от 1 до 240 секунд. Допустимы выражения политики. нет 5
JSON Обработчик шаблонов, используемый для преобразования содержимого сообщения. Единственное поддерживаемое значение — Liquid. нет нет
тип_содержимого Тип содержимого сообщения. Единственное поддерживаемое значение — application/json. нет нет

Элементы

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

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

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

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

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