Задание внутренней службы
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API
Используйте политику set-backend-service
для перенаправления входящего запроса во внутреннюю службу, отличную от указанной в параметрах API для этой операции. Эта политика изменяет базовый URL-адрес серверной службы входящего запроса на URL-адрес или серверную часть, указанную в политике.
Ссылка на серверную сущность позволяет управлять базовым URL-адресом серверной службы и другими параметрами в одном месте и повторно использовать их в нескольких API и операциях. Кроме того, реализуйте балансировку нагрузки трафика в пуле внутренних служб и правил разбиения каналов для защиты серверной части от слишком большого количества запросов.
Примечание.
Серверными сущностями можно управлять на портале Azure, с помощью API управления и PowerShell.
Примечание.
Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Узнайте, как устанавливать или изменять политики службы управления API.
Правило политики
<set-backend-service base-url="base URL of the backend service" backend-id="name of the backend entity specifying base URL of the backend service" sf-resolve-condition="condition" sf-service-instance-name="Service Fabric service name" sf-listener-name="Service Fabric listener name" />
Атрибуты
Атрибут | Description | Обязательное поле | По умолчанию. |
---|---|---|---|
base-url | Новый базовый URL-адрес внутренней службы. Допустимы выражения политики. | Необходимо указать base-url или backend-id . |
Н/П |
backend-id | Идентификатор (имя) серверной части для маршрутизации первичной или вторичной реплики секции. Допустимы выражения политики. | Необходимо указать base-url или backend-id . |
Н/П |
sf-resolve-condition | Применяется только, когда серверной частью является служба Service Fabric. Условие, определяющее, необходимо ли повторить вызов к серверной части Service Fabric с новым разрешением. Допустимы выражения политики. | No | Н/П |
sf-service-instance-name | Применяется только, когда серверной частью является служба Service Fabric. Разрешает изменение экземпляров службы в среде выполнения. Допустимы выражения политики. | No | Н/П |
sf-partition-key | Применяется только, когда серверной частью является служба Service Fabric. Указывает ключ секции службы Service Fabric. Допустимы выражения политики. | No | Н/П |
sf-listener-name | Применимо только в том случае, если серверная часть является службой Service Fabric и указана с помощью backend-id . Reliable Services Service Fabric позволяют создавать несколько прослушивателей в одной службе. Этот атрибут используется для выбора конкретного прослушивателя, когда у серверной службы Reliable Service есть больше одного прослушивателя. Если этот атрибут не указан, Управление API попытается использовать прослушиватель без имени. Прослушиватель без имени часто используются службами Reliable Services, у которых есть только один прослушиватель. Допустимы выражения политики. |
No | Н/П |
Использование
- Разделы политики: inbound, backend.
- Области политики: глобальная, рабочая область, продукт, API, операция
- Шлюзы: классическая, версия 2, потребление, локальное размещение, рабочая область
Примечания об использовании
В настоящее время, если вы определяете базовую политику с помощью атрибута и наследуете базовую set-backend-service
политику, используемую <base />
backend-id
в области, она может быть переопределена только политикой с помощью backend-id
атрибута, а не атрибутаbase-url
.
Примеры
Запрос маршрута на основе значения в строке запроса
В этом примере set-backend-service
политика направляет запросы на основе значения версии, передаваемого в строку запроса, в другую серверную службу, отличную от указанной в API.
<policies>
<inbound>
<choose>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2013-05")">
<set-backend-service base-url="http://contoso.com/api/8.2/" />
</when>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2014-03")">
<set-backend-service base-url="http://contoso.com/api/9.1/" />
</when>
</choose>
<base />
</inbound>
<outbound>
<base />
</outbound>
</policies>
Изначально базовый URL-адрес внутренней службы является производным от параметров API. Поэтому URL-адрес запроса https://contoso.azure-api.net/api/partners/15?version=2013-05&subscription-key=abcdef
становится http://contoso.com/api/10.4/partners/15?version=2013-05&subscription-key=abcdef
, где http://contoso.com/api/10.4/
— URL-адрес внутренней службы, указанной в параметрах API.
Когда применяется правило политики <choose>, базовый URL-адрес внутренней службы может снова измениться на http://contoso.com/api/8.2
или http://contoso.com/api/9.1
в зависимости от значения параметра запроса версии. Например, если значение — "2013-15"
, URL-адрес последнего запроса становится http://contoso.com/api/8.2/partners/15?version=2013-15&subscription-key=abcdef
.
Если требуются дополнительные преобразования запроса, можно воспользоваться другими политиками преобразования. Например, чтобы удалить параметр запроса версии после направления запроса в конкретную серверную часть версии, для удаления атрибута избыточной версии можно использовать политику Настройка параметра строки запроса.
Маршрутизация запросов к серверной части Service Fabric
В этом примере политика направляет запрос к внутренней службе Service Fabric, используя строку запроса userId в качестве ключа секции и используя первичную реплику секции.
<policies>
<inbound>
<set-backend-service backend-id="my-sf-service" sf-partition-key="@(context.Request.Url.Query.GetValueOrDefault("userId","")" sf-replica-type="primary" />
</inbound>
<outbound>
<base />
</outbound>
</policies>
Связанные политики
Связанный контент
Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.
- Руководство. Преобразование и защита API
- Полный перечень операторов политик и их параметров см. в справочнике по политикам.
- Выражения политики
- Настройка или изменение политик
- Повторное использование конфигураций политик
- Репозиторий фрагментов политик
- Создание политик с помощью Microsoft Copilot в Azure