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


Подключение к базе данных со статическими веб-приложениями Azure (предварительная версия)

Это важно

Уведомление о выходе на пенсию: подключения к базам данных для статических веб-приложений заканчивается 30 ноября 2025 г. Теперь выполните миграцию, чтобы избежать перебоев.

Функция подключения к базе данных статических веб-приложений Azure позволяет получить доступ к базе данных из статического веб-приложения без написания пользовательского кода на стороне сервера.

После создания подключения между веб-приложением и базой данных можно управлять данными с полной поддержкой операций CRUD, встроенной авторизации и связей.

На основе построителя API данных статические веб-приложения Azure принимают запросы REST и GraphQL и преобразовывают их в запросы базы данных.

К функциям, поддерживаемым подключениями к базе данных, относятся:

Функция Description
Встроенная безопасность Встроенная интеграция со статическими веб-приложениями Azure и моделью безопасности авторизации. Та же безопасность на основе ролей, используемая для защиты маршрутов, доступна для конечных точек API.
Полные операции на основе CRUD Дополнительные сведения о том, как управлять данными в приложении, см. в руководствах по Azure Cosmos DB, SQL, MySQL или PostgreSQL .
Поддержка SQL и NoSQL В качестве базы данных приложения можно использовать реляционные базы данных и базы данных документов.
Бессерверная архитектура Подключения настраиваются от 0 до 1 рабочего узла в режиме предварительного просмотра.
Связи базы данных Поддерживается только через конечную точку GraphQL.
Поддержка ИНТЕРФЕЙСА командной строки Разработка локально с помощью интерфейса командной строки статических веб-приложений. --data-api-location Используйте параметр для обработки запросов к API-интерфейсам данных в разработке так же, как они обрабатываются в облаке.

Поддерживаемые базы данных

В следующей таблице показана поддержка различных реляционных баз данных и noSQL.

Имя Тип Description REST GraphQL
Azure Cosmos DB Стандарт Глобально распределенная платформа баз данных для NoSQL и реляционных баз данных любого масштаба.

Помимо стандартной конфигурацииgql для конечных точек GraphQL требуется файл схемы.
Azure SQL Стандарт Семейство управляемых, безопасных и интеллектуальных продуктов, использующих ядро СУБД SQL Server в облаке Azure.
База данных Azure для MySQL Flex Реляционная служба базы данных в облаке Майкрософт на основе MySQL Community Edition
База данных Azure для PostgreSQL Flex Полностью управляемая база данных PostgreSQL как услуга, которая обрабатывает критически важные рабочие нагрузки с прогнозируемой производительностью и динамической масштабируемостью.
База данных Azure для PostgreSQL (одна) Single Полностью управляемая база данных PostgreSQL.

Для доступа к базе данных можно использовать следующие типы подключений:

  • строка подключения
  • Управляемое удостоверение, назначаемое пользователем
  • Назначаемое системой управляемое удостоверение

Расположение конечной точки

Доступ к конечным точкам данных доступен вне /data-api пути.

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

Путь Description
example.com/api/* Функции API
example.com/data-api/* Конечные точки подключения к базе данных, поддерживающие запросы REST и GraphQL.
example.com/* Статическое содержимое

При настройке подключений к базе данных на вашем веб-сайте, вы можете настроить маршрут с суффиксом /data-api/*, REST или GraphQL. Префикс /data-api — это соглашение о статических веб-приложениях и не может быть изменено.

Конфигурация

Существует два шага по настройке подключения к базе данных в статических веб-приложениях. Необходимо подключить базу данных к статическому веб-приложению на портале Azure и обновить файл конфигурации подключений к базе данных.

Дополнительные сведения см. в разделе "Конфигурация подключения к базе данных" в статических веб-приложениях Azure .

Локальная разработка

Интерфейс командной строки статических веб-приложений Azure (SWA CLI) включает поддержку работы с подключениями к базам данных во время локальной разработки.

Интерфейс командной строки активирует локальную конечную точку /data-api и проксирует запросы с порта 4280 на соответствующий порт для доступа к базе данных.

Ниже приведен пример команды, которая запускает интерфейс командной строки SWA с подключением к базе данных:

swa start ./src --data-api-location swa-db-connections

Эта команда запускает интерфейс командной строки SWA в каталоге src . Параметр --data-api-location сообщает CLI, что папка с именем swa-db-connections содержит файлstaticwebapp.database.config.json .

Замечание

При разработке, если вы используете строку соединения для аутентификации, используйте функцию env(), чтобы прочитать строку соединения из переменной среды. Строка, переданная в функцию env , должна быть окружена кавычками.

Безопасность на основе ролей

При определении сущности в файле staticwebapp.database.config.json можно указать список ролей, необходимых для доступа к конечной точке сущности.

В следующем фрагменте конфигурации требуется роль администратора для доступа на все действия (create, read, update, delete) в сущности заказов.

{
...
"entities": { 
  "Orders": { 
    "source": "dbo.Orders", 
    "permissions": [ 
      { 
        "actions": ["*"], 
        "role": "admin" 
      }
    ]
 }
}
...
}

При запросах к конечной точке, требующей наличие роли, необходимы следующие условия:

  1. Текущий пользователь должен пройти проверку подлинности.

  2. Текущий пользователь должен быть членом требуемой роли.

  3. Запрос REST или GraphQL должен содержать заголовок с ключом X-MS-API-ROLE и значением имени роли, соответствующим тому, что указано в правилах конфигурации сущностей.

    Например, в следующем фрагменте кода показано, как передать роль администратора в заголовке запроса.

    {
      method: "POST",
      headers: { 
        "Content-Type": "application/json",
        "X-MS-API-ROLE": "admin"
      },
      body: JSON.stringify(requestPayload)
    }
    

Constraints

  • Базы данных должны быть доступны инфраструктурой Azure.
  • Во время общедоступной предварительной версии подключения к базе данных увеличиваются от 0 до 1 рабочего потока базы данных.

Дальнейшие шаги