Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Уведомление о выходе на пенсию: подключения к базам данных для статических веб-приложений заканчивается 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"
}
]
}
}
...
}
При запросах к конечной точке, требующей наличие роли, необходимы следующие условия:
Текущий пользователь должен пройти проверку подлинности.
Текущий пользователь должен быть членом требуемой роли.
Запрос 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 рабочего потока базы данных.