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