Настройка серверной части Service Fabric в Управление API с помощью портал Azure

В этой статье описано, как настроить службу Service Fabric в качестве настраиваемой серверной части API с помощью портала Azure. В демонстрационных целях здесь показано, как настроить базовую надежную службу ASP.NET Core без отслеживания состояния в качестве серверной части Service Fabric.

Дополнительные сведения см. в статье о серверных частях службы "Управление API".

Необходимые компоненты

Необходимые компоненты для настройки примера службы в кластере Service Fabric под управлением Windows в качестве пользовательской серверной части:

  • Среда разработки Windows. Установите Visual Studio 2019, а также рабочие нагрузки Разработка для Azure, ASP.NET и разработка веб-приложений и Кроссплатформенная разработка .NET Core. Теперь настройте среду разработки .NET.

  • Кластер Service Fabric. См. руководство по развертыванию кластера Service Fabric под управлением Windows в виртуальной сети Azure. Вы можете создать кластер с имеющимся сертификатом X.509 или создать самозаверяющий сертификат для тестирования. Кластер создается в виртуальной сети.

  • Пример приложения Service Fabric . Создайте веб-приложение API и разверните его в кластере Service Fabric, как описано в статье об интеграции службы Управление API с Service Fabric в Azure.

    Выполнив эти действия, вы создадите базовую надежную службу ASP.NET Core без отслеживания состояния с помощью стандартного шаблона проекта веб-API. Позже предоставьте конечную точку HTTP для этой службы через службу "Управление API"службы "Управление API" Azure.

    Запишите имя приложения, например fabric:/myApplication/myService.

  • Экземпляр службы Управление API. Имеющийся или новый экземпляр службы Управление API на уровне Премиум или Разработчик в том же регионе, что и кластер Service Fabric. В случае необходимости создайте экземпляр службы "Управление API".

  • Виртуальная сеть. Добавьте экземпляр службы "Управление API" в виртуальную сеть, созданную для кластера Service Fabric. Службе "Управление API" требуется выделенная подсеть в виртуальной сети.

    Инструкции по настройке подключения к виртуальной сети для экземпляра службы "Управление API" Azure см. в этой статье.

Создание серверной части — портал

Добавление сертификата кластера Service Fabric в службу "Управление API"

Сертификат кластера Service Fabric хранится и управляется в решении Azure Key Vault, связанном с кластером. Добавьте этот сертификат в экземпляр службы "Управление API" в качестве сертификата клиента.

Чтобы узнать, как добавить сертификат в экземпляр службы "Управление API" см. статью Защита внутренних служб с помощью проверки подлинности на основе сертификата клиента в службе "Управление API" Azure.

Примечание.

Мы рекомендуем добавить сертификат в службу "Управление API", сославшись на сертификат хранилища ключей.

Добавление серверной части Service Fabric

  1. Перейдите к экземпляру Управления API на портале Azure.

  2. В разделе Интерфейсы API выберите Серверные части>+ Добавить.

  3. Введите имя серверной части и необязательное описание.

  4. В поле Тип выберите Service Fabric.

  5. В поле URL-адрес среды выполнения введите имя внутренней службы Service Fabric, на которую служба "Управление API" будет пересылать запросы. Пример: fabric:/myApplication/myService.

  6. Для максимального числа повторных попыток разрешения секций введите число от 0 до 10.

  7. Введите конечную точку управления кластера Service Fabric. Эта конечная точка является URL-адресом кластера на порте 19080, например https://mysfcluster.eastus.cloudapp.azure.com:19080.

  8. В поле Сертификат клиента выберите сертификат кластера Service Fabric, добавленный в экземпляр службы "Управление API" в предыдущем разделе.

  9. Для метода авторизации конечной точки управления введите отпечаток или имя сервера X509 сертификата, используемого службой управления кластерами Service Fabric для взаимодействия TLS.

  10. Включите параметры Validate certificate chain (Проверка цепочки сертификатов) и Validate certificate name (Проверка имени сертификата).

  11. В поле Authorization credentials (Учетные данные для авторизации) укажите учетные данные (если необходимо) для доступа к настроенной внутренней службе в Service Fabric. Для примера приложения, используемого в этом сценарии, учетные данные авторизации не требуются.

  12. Нажмите кнопку создания.

    Создание серверной части Service Fabric

Использование серверной части

Чтобы использовать настраиваемую серверную часть, нужно сослаться на нее с помощью политики set-backend-service. Эта политика преобразует базовый URL-адрес службы серверной части входящего запроса API в указанную серверную часть, в данном случае в серверную часть Service Fabric.

Политика set-backend-service может быть полезна при использовании имеющегося API для преобразования входящего запроса в другую серверную часть, отличную от указанной в параметрах API. В целях демонстрации в этой статье описано создание тестового API и настройка политики для направления запросов API в серверную часть Service Fabric.

Создание API

Чтобы создать пустой API, выполните действия, описанные в статье о добавлении API вручную.

  • В параметрах API поле URL-адрес оставьте пустым.

  • Добавьте суффикс URL-адреса API, например fabric.

    Создание пустого API

Добавьте операцию Get в API

Согласно разделу о развертывании серверной службы Service Fabric, пример службы ASP.NET Core, развернутой в кластере Service Fabric, поддерживает одну операцию HTTP GET по URL-адресу /api/values.

Ответом по умолчанию для этого пути является массив JSON состоящий из двух строк:

["value1", "value2"]

Чтобы проверить интеграцию службы "Управление API" с кластером, добавьте соответствующую операцию Get в API по пути /api/values:

  1. Выберите API, созданный на предыдущем шаге.

  2. Щелкните + Add Operation (+ Добавить операцию).

  3. В окне Интерфейсный сервер введите следующие значения и нажмите кнопку Сохранить.

    Параметр Значение
    Отображаемое имя Проверка серверной части
    URL-адрес GET
    URL-адрес /api/values

    Добавление операции Get в API

Настройка политики set-backend-service

Добавьте политику set-backend-service в тестовый API.

  1. На вкладке Конструктор в разделе Обработка входящих запросов выберите значок редактора кода (</>).

  2. Разместите курсор внутри <входящего> элемента.

  3. Добавление set-service-backendПравила политики.

    • В backend-id замените имя серверной части Service Fabric.

    • sf-resolve-condition — условие для повторного разрешения расположения службы и повторного выполнения запроса. Число повторных попыток, заданных во время настройки серверной части. Например:

      <set-backend-service backend-id="mysfbackend" sf-resolve-condition="@(context.LastError?.Reason == "BackendConnectionFailure")"/>
      
  4. Выберите Сохранить.

    Настройка политики set-backend-service

Примечание.

Если один или несколько узлов в кластере Service Fabric отключены или удалены, Управление API не получает автоматическое уведомление и продолжает отправлять трафик на эти узлы. Чтобы обработать эти случаи, настройте условие разрешения, аналогичное следующему: sf-resolve-condition="@((int)context.Response.StatusCode != 200 || context.LastError?.Reason == "BackendConnectionFailure" || context.LastError?.Reason == "Timeout")"

Проверка API серверной части

  1. На вкладке Проверка выберите операцию GET, созданную в предыдущем разделе.

  2. Выберите Отправить.

    При правильной настройке ответ HTTP показывает успешный код HTTP и отображает JSON, возвращенный из внутренней службы Service Fabric.

    Проверка серверной части Service Fabric