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


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

Функция подключения к базе данных Статические веб-приложения 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.

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

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

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

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

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

Доступ к конечным точкам данных доступен вне /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)
    }
    

Ограничения

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

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