Бөлісу құралы:


Использование приложения, развернутого в SQL Server Кластеры больших данных с помощью веб-службы RESTful

Область применения: SQL Server 2019 (15.x)

В этой статье описывается использование приложения, развернутого в кластере больших данных SQL Server, с помощью веб-службы на основе REST.

Внимание

Поддержка надстройки "Кластеры больших данных" Microsoft SQL Server 2019 будет прекращена. Мы прекратим поддержку Кластеров больших данных SQL Server 2019 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на платформе, и программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений SQL Server до этого времени. Дополнительные сведения см. в записи блога объявлений и в статье о параметрах больших данных на платформе Microsoft SQL Server.

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

Примечание.

Если в файле спецификации YAML приложения указано расписание, приложение будет запущено с помощью задания cron. Если кластер больших данных развертывается в OpenShift, запуск задания cron требует дополнительных возможностей. Подробные инструкции см. в рекомендациях по безопасности для OpenShift.

Возможности

После развертывания приложения в Кластеры больших данных SQL Server 2019 вы можете получить доступ к приложению и использовать его с помощью веб-службы RESTful. Это обеспечивает интеграцию этого приложения с другими приложениями или службами (например, мобильным приложением или веб-сайтом). В следующей таблице описаны команды развертывания приложения, которые можно использовать с azdata, чтобы получить сведения о веб-службе на основе REST для приложения.

Команда Description
azdata app describe Описание приложения.

Справку по параметру --help можно получить, как показано в следующем примере.

azdata app describe --help

В следующих разделах описано, как получить конечную точку для приложения и работать с веб-службой на основе REST для интеграции приложений.

Получение конечной точки

Кластеры больших данных предоставляют конечные точки, которые можно использовать для доступа к приложению и работы с ним с помощью веб-службы RESTful. Основное их назначение заключается в том, чтобы упростить взаимодействие с другими веб- или мобильными приложениями и обеспечить более активный переход на эту архитектуру микрослужб. Команда azdata app describe предоставляет подробные сведения о приложении, включая конечную точку в кластере. Обычно она используется разработчиком приложения, чтобы создать приложение с помощью клиента Swagger и использовать веб-службу для взаимодействия с приложением на основе REST.

Опишите приложение, выполнив команду, аналогичную приведенной в следующем примере:

azdata app describe --name add-app --version v1
{
  "input_param_defs": [
    {
      "name": "x",
      "type": "int"
    },
    {
      "name": "y",
      "type": "int"
    }
  ],
  "links": {
    "app": "https://10.1.1.3:30080/app/addpy/v1",
    "swagger": "https://10.1.1.3:30080/app/addpy/v1/swagger.json"
  },
  "name": "add-app",
  "output_param_defs": [
    {
      "name": "result",
      "type": "int"
    }
  ],
  "state": "Ready",
  "version": "v1"
}

Запишите IP-адрес (в этом примере — 10.1.1.3) и номер порта (30080) в выходных данных.

Доступен еще один способ получения этой информации: щелкните правой кнопкой мыши элемент "Управление" на сервере в Azure Data Studio, где будут перечислены конечные точки служб.

Конечная точка ADS

Создание маркера доступа JWT

Чтобы обратиться к веб-службе на основе REST для развернутого приложения, сначала нужно создать маркер доступа JWT. URL-адрес маркера доступа зависит от версии кластера больших данных.

Версия URL
GDR1 https://[IP]:[PORT]/docs/swagger.json
C пакетом обновления 1 (CU1) и более поздними версиями https://[IP]:[PORT]/api/v1/swagger.json

Учитывая выходные данные предыдущего примера, выпуск CU4 и IP-адрес контроллера (10.1.1.3 в этом примере) и номер порта (30080), URL-адрес будет выглядеть следующим образом:

   https://10.1.1.3 :30080/api/v1/swagger.json

Сведения о версиях см. в журнале выпусков.

Откройте соответствующий URL-адрес в браузере, объединяя IP-адрес и порт, которые вы получили при выполнении указанной выше команды describe. Войдите в систему с теми же учетными данными, которые использовались для azdata login.

Вставьте содержимое swagger.json в редактор Swagger, чтобы понять, какие методы доступны.

Swagger API

Обратите внимание, что app является методом GET и для получения token использует метод POST. Так как проверка подлинности для приложений использует маркеры JWT, вам потребуется получить маркер с помощью привычного вам средства, чтобы выполнить запрос POST к методу token. В том же примере URL-адрес для получения маркера JWT будет выглядеть следующим образом:

   https://10.1.1.3 :30080/api/v1/token

Ниже приведен пример того, как именно это можно сделать в Postman.

Маркер Postman

В выходных данных этого запроса вы получите access_token JWT, который потребуется при вызове URL-адреса для запуска приложения.

Выполнение приложения с помощью веб-службы на основе REST

Существует несколько способов использовать приложение в Кластерах больших данных SQL Server. Вы можете выполнить команду azdata app run. В этом разделе показано, как использовать общие средства разработчика, такие как Postman, для выполнения приложения.

Вы можете открыть URL-адрес для swagger, возвращенный при выполнении azdata app describe --name [appname] --version [version] в браузере, который должен быть похож на https://[IP]:[PORT]/app/[appname]/[version]/swagger.json.

Примечание.

Вам потребуется войти в систему с теми же учетными данными, которые использовались для azdata login. В том же примере команда будет выглядеть следующим образом:

   azdata app describe --name add-app --version v1

Содержимое swagger.json можно вставить в редактор Swagger. Вы увидите, что веб-служба предоставляет метод run, пройдя через прокси приложения, который является веб-API, проверяющим подлинность пользователей, а затем направляющим запросы в приложения. Обратите внимание на базовый URL-адрес, отображаемый сверху. Вы можете использовать любое средство для вызова метода run (https://[IP]:30778/api/app/[appname]/[version]/run), передав параметры в текст запроса POST в виде JSON.

В этом примере мы будем использовать Postman. Перед вызовом нужно задать для Authorization значение Bearer Token и вставить полученный ранее маркер. Этим вы зададите заголовок своего запроса. См. снимок экрана ниже.

Заголовки выполнения Postman

Затем в тексте запросов передайте параметры в приложение, которое вы вызываете, и присвойте content-type значение application/json.

Текст выполнения Postman

При отправке запроса вы получите те же выходные данные, что и при запуске приложения с помощью azdata app run.

Результат выполнения Postman

Вы успешно вызвали приложение через веб-службу. Интегрировать эту веб-службы в свое приложение можно аналогичным образом.

Следующие шаги

Чтобы получить дополнительные сведения, см. статью Мониторинг приложений в кластерах больших данных. Дополнительные примеры можно просмотреть в наборе примеров развертывания приложений.

Дополнительные сведения о Кластеры больших данных SQL Server см. в статье "Что такое SQL Server 2019 Кластеры больших данных".