Чтобы использовать настраиваемую серверную часть, нужно сослаться на нее с помощью политики set-backend-service
. Эта политика преобразует базовый URL-адрес службы серверной части входящего запроса API в указанную серверную часть, в данном случае в серверную часть Service Fabric.
Политика set-backend-service
может быть полезна при использовании имеющегося API для преобразования входящего запроса в другую серверную часть, отличную от указанной в параметрах API. В целях демонстрации в этой статье описано создание тестового API и настройка политики для направления запросов API в серверную часть Service Fabric.
Создание API
Чтобы создать пустой API, выполните действия, описанные в статье о добавлении API вручную.
Добавьте операцию Get в API
Согласно разделу о развертывании серверной службы Service Fabric, пример службы ASP.NET Core, развернутой в кластере Service Fabric, поддерживает одну операцию HTTP GET по URL-адресу /api/values
.
Ответом по умолчанию для этого пути является массив JSON состоящий из двух строк:
["value1", "value2"]
Чтобы проверить интеграцию службы "Управление API" с кластером, добавьте соответствующую операцию Get в API по пути /api/values
:
Выберите API, созданный на предыдущем шаге.
Щелкните + Add Operation (+ Добавить операцию).
В окне Интерфейсный сервер введите следующие значения и нажмите кнопку Сохранить.
Параметр |
Значение |
Отображаемое имя |
Проверка серверной части |
URL-адрес |
GET |
URL-адрес |
/api/values |
Добавьте политику set-backend-service
в тестовый API.
На вкладке Конструктор в разделе Обработка входящих запросов выберите значок редактора кода (</>).
Разместите курсор внутри <входящего> элемента.
Добавление set-service-backend
Правила политики.
В backend-id
замените имя серверной части Service Fabric.
sf-resolve-condition
— условие для повторного разрешения расположения службы и повторного выполнения запроса. Число повторных попыток, заданных во время настройки серверной части. Например:
<set-backend-service backend-id="mysfbackend" sf-resolve-condition="@(context.LastError?.Reason == "BackendConnectionFailure")"/>
Выберите Сохранить.
Примечание.
Если один или несколько узлов в кластере Service Fabric отключены или удалены, Управление API не получает автоматическое уведомление и продолжает отправлять трафик на эти узлы. Чтобы обработать эти случаи, настройте условие разрешения, аналогичное следующему: sf-resolve-condition="@((int)context.Response.StatusCode != 200 || context.LastError?.Reason == "BackendConnectionFailure" || context.LastError?.Reason == "Timeout")"
Проверка API серверной части