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


Задание внутренней службы

ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление 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 Н/П

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

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

В настоящее время, если вы определяете базовую политику с помощью атрибута и наследуете базовую 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>

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