Перенаправляющий запрос
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API
Политика forward-request
перенаправляет входящий запрос во внутреннюю службу, указанную в контексте запроса. URL-адрес внутренней службы, заданный в параметрах API, может быть изменен с помощью политики задания внутренней службы.
Внимание
- Эта политика необходима для пересылки запросов в серверную часть API. По умолчанию Управление API настраивает эту политику в глобальной области.
- Удаление этой политики приводит к тому, что запрос не перенаправляется в серверную службу. Политики в исходящем разделе оцениваются сразу после успешного выполнения политики во входящем разделе.
Примечание.
Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Узнайте, как устанавливать или изменять политики службы управления API.
Правило политики
<forward-request http-version="1 | 2or1 | 2" timeout="time in seconds (alternatively, use timeout-ms)" | timeout-ms="time in milliseconds (alternatively, use timeout)" continue-timeout="time in seconds" follow-redirects="false | true" buffer-request-body="false | true" buffer-response="true | false" fail-on-error-status-code="false | true"/>
Атрибуты
Атрибут | Description | Обязательное поле | По умолчанию. |
---|---|---|---|
timeout | Время в секундах, в течение которого нужно ждать, пока внутренняя служба вернет заголовки ответа HTTP, прежде чем возникнет ошибка времени ожидания. Минимальное значение составляет 0 секунд. Значения, превышающие 240 секунд, могут не учитываться, так как базовая сетевая инфраструктура может удалять неактивные подключения после этого времени. Допустимы выражения политики. Можно указать любой из timeout этих вариантов или timeout-ms не оба. |
No | 300 |
timeout-ms | Время в миллисекундах для ожидания возврата заголовков HTTP-ответа серверной службой до возникновения ошибки времени ожидания. Минимальное значение — 0 мс. Допустимы выражения политики. Можно указать любой из timeout этих вариантов или timeout-ms не оба. |
No | Н/П |
время ожидания продолжения | Время в секундах для ожидания 100 Continue возврата кода состояния серверной службой до возникновения ошибки времени ожидания. Допустимы выражения политики. |
No | Н/П |
http-version | Версия спецификации HTTP, используемая при отправке HTTP-ответа в серверную службу. При использовании 2or1 шлюз будет использовать протокол HTTP /2 по сравнению с /1, но возвращается к протоколу HTTP /1, если HTTP /2 не работает. |
No | 1 |
последующие перенаправления | Указывает, что происходит с перенаправлениями от внутренней службы: шлюз выполняет их или они возвращаются вызывающему объекту. Допустимы выражения политики. | No | false |
buffer-request-body | Если задано значение true , запрос буферизуется и будет повторно использоваться при повторных попытках. |
No | false |
buffer-response | Влияет на обработку фрагментированных откликов. Если задано значение false , каждый блок, полученный от серверной части, немедленно возвращается вызывающей стороне. Если задано значение true , блоки буферизовываются (8 КБ, если не обнаружен конец потока), а затем возвращаются вызывающему объекту.Установите значение false с внутренними серверными службами, например с реализацией событий, отправленных сервером (SSE), которые требуют возврата или передачи содержимого немедленно вызывающей стороне. Выражения политики не допускаются. |
No | true |
Код fail-on-error-status-code | Если задано значение true , триггеры в разделе об ошибке для кодов ответов в диапазоне от 400 до 599 включительно. Выражения политики не допускаются. |
No | false |
Использование
- Разделы политики: backend.
- Области политики: глобальная, рабочая область, продукт, API, операция
- Шлюзы: классическая, версия 2, потребление, локальное размещение, рабочая область
Примеры
Отправка запроса на серверную часть HTTP/2
Следующая политика уровня API перенаправляет все запросы API в серверную службу HTTP/2.
<!-- api level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<forward-request http-version="2or1"/>
</backend>
<outbound>
<base/>
</outbound>
</policies>
Это необходимо для рабочих нагрузок HTTP /2 или gRPC, которые в настоящее время поддерживаются только в локальном шлюзе. Дополнительные сведения см. в обзоре шлюза API.
Переадресация запроса с интервалом времени ожидания
Следующая политика уровня API перенаправляет все запросы API к внутренней службе с интервалом времени ожидания 60 секунд.
<!-- api level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
<outbound>
<base/>
</outbound>
</policies>
Наследование политики от родительской области
Эта политика уровня операций использует элемент base
, чтобы наследовать внутреннюю политику от родительской области уровня API.
<!-- operation level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<base/>
</backend>
<outbound>
<base/>
</outbound>
</policies>
Не наследуйте политику от родительской области
Эта политика уровня операций явно перенаправляет все запросы в серверную службу с временем ожидания 120 и не наследует политику серверной части родительского уровня API. Если внутренняя служба реагирует на код состояния ошибки от 400 до 599 включительно, то будет запущен раздел on-error.
<!-- operation level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<forward-request timeout="120" fail-on-error-status-code="true" />
<!-- effective policy. note the absence of <base/> -->
</backend>
<outbound>
<base/>
</outbound>
</policies>
Не перенаправлять запросы на серверную часть
Эта политика уровня операций не перенаправляет запросы в серверную службу.
<!-- operation level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<!-- no forwarding to backend -->
</backend>
<outbound>
<base/>
</outbound>
</policies>
Связанные политики
Связанный контент
Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.
- Руководство. Преобразование и защита API
- Полный перечень операторов политик и их параметров см. в справочнике по политикам.
- Выражения политики
- Настройка или изменение политик
- Повторное использование конфигураций политик
- Репозиторий фрагментов политик
- Создание политик с помощью Microsoft Copilot в Azure