Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве показано, как развернуть построитель данных (DAB) для Служба приложений Azure с помощью модели развертывания на основе кода без создания образов контейнеров или управления ими. Служба приложений обеспечивает встроенную поддержку TLS, пользовательских доменов, масштабирования, мониторинга и проверки подлинности Microsoft Entra.
Tip
Если ваша среда использует контейнеры, см. Развертывание на Контейнеры приложений Azure или Развертывание на Служба Azure Kubernetes.
Необходимые условия
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно.
- CLI инструмента построения API данных. Установите ИНТЕРФЕЙС командной строки.
- Azure CLI. Установите Azure CLI.
- .NET 8 или более поздней версии установлен локально.
- Существующая поддерживаемая база данных, доступная через Azure.
Создание файла конфигурации
Создайте файл конфигурации DAB для подключения к существующей базе данных.
Создайте пустой каталог на локальном компьютере, чтобы сохранить файл конфигурации и артефакты развертывания.
Инициализация нового базового файла конфигурации с помощью
dab init.@env()Используйте функцию для ссылки наDATABASE_CONNECTION_STRINGпеременную среды, чтобы учетные данные не хранились в файле конфигурации.dab init --database-type "<database-type>" --connection-string "@env('DATABASE_CONNECTION_STRING')"Important
Замените
<database-type>поддерживаемым типом базы данных, напримерmssql,postgresqlилиmysqlcosmosdb_nosql. Для некоторых типов баз данных требуются дополнительные параметры конфигурации при инициализации.Добавьте хотя бы одну сущность базы данных в конфигурацию. Используйте команду
dab add, чтобы настроить сущность. Повторяйтеdab addстолько раз, сколько необходимо для ваших объектов.dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"Откройте и просмотрите содержимое файла dab-config.json . Проверьте следующее:
-
data-source.connection-stringиспользует@env('DATABASE_CONNECTION_STRING') - Ваши сущности и разрешения правильные
Important
Не внедряйте в
dab-config.jsonлитеральные строки подключения или секреты. Используйте функцию@env(), чтобы значения определялись из переменных среды во время выполнения.-
Создание манифеста локального инструмента
Используйте локальный манифест средства .NET, чтобы пакет развертывания включает DAB в качестве зависимости проекта. Этот подход позволяет избежать использования глобально установленного средства внутри службы приложений.
Создайте манифест локального средства .NET в каталоге проекта.
dotnet new tool-manifestУстановите конструктор API данных в качестве локального инструмента.
dotnet tool install microsoft.dataapibuilder --prereleaseУбедитесь, что манифест существует по адресу
.config/dotnet-tools.json.Note
Флаг
--prereleaseустанавливает последнюю предварительную версию конструктора API данных. Удалите флаг, чтобы установить последнюю стабильную версию.
Локальное тестирование
Перед развертыванием в Azure убедитесь, что среда выполнения запускается, а конечные точки работают.
Задайте строка подключения в качестве локальной переменной среды.
$env:DATABASE_CONNECTION_STRING = "<your-connection-string>"Запустите среду выполнения DAB локально.
dab startПроверьте конечную точку REST, перейдя к пользовательскому интерфейсу Swagger или выполнив запрос
/api/<entity-name>.Проверьте конечную точку GraphQL в
/graphql.Остановите среду выполнения после проверки всех конечных точек.
Создание ресурсов службы приложений
Создайте ресурсы Azure, необходимые для размещения DAB в службе приложений.
Создание группы ресурсов Эта группа ресурсов используется для всех новых ресурсов в этом руководстве.
az group create \ --name <resource-group-name> \ --location <location>Tip
Рассмотрите возможность именования группы ресурсов msdocs-dab-appservice.
Создайте план службы приложений.
az appservice plan create \ --name <plan-name> \ --resource-group <resource-group-name> \ --sku B1 \ --is-linuxNote
В этом руководстве используется уровень B1 (Базовый) в Linux.
Создайте веб-приложение с помощью среды выполнения .NET 8.
az webapp create \ --name <app-name> \ --resource-group <resource-group-name> \ --plan <plan-name> \ --runtime "DOTNETCORE:8.0"Tip
Проверьте доступные среды выполнения для плана с помощью
az webapp list-runtimes --os linux.
Настройка параметров службы приложений
Настройте переменные среды и команду запуска, необходимые для работы DAB в службе приложений.
Настройте поставщик проверки подлинности для службы приложений. Этот параметр инструктирует DAB доверять встроенной аутентификации службы приложений (Easy Auth) для получения информации об идентификации.
dab configure --runtime.host.authentication.provider AppServiceУстановите строку подключения к базе данных в параметрах службы App Service.
az webapp config appsettings set \ --name <app-name> \ --resource-group <resource-group-name> \ --settings DATABASE_CONNECTION_STRING="<your-connection-string>"Tip
Используйте строку подключения, которая не включает секреты. Вместо этого используйте управляемые удостоверения и проверку подлинности Microsoft Entra для управления доступом между вашей базой данных и службой приложений. Дополнительные сведения см. в службах Azure, использующих управляемые удостоверения.
Создайте скрипт запуска, который восстанавливает манифест локального средства и запускает DAB. Создайте файл с именем
startup.shв каталоге проекта.#!/bin/sh dotnet tool restore dotnet tool run dab startImportant
Убедитесь, что
startup.shиспользует окончания строк LF (Unix), а не CRLF. Windows редакторы могут сохраняться с помощью CRLF по умолчанию, что приводит к сбою скрипта на узле службы приложений Linux.Задайте команду запуска в Службе приложений.
az webapp config set \ --name <app-name> \ --resource-group <resource-group-name> \ --startup-file "startup.sh"
Развертывание в службе приложений Azure
Упаковайте файлы проекта и разверните их в Службе приложений с помощью zip-развертывания.
Создайте пакет развертывания, содержащий файлы проекта. Как минимум, включите:
dab-config.json.config/dotnet-tools.jsonstartup.sh
Compress-Archive -Path dab-config.json, .config, startup.sh -DestinationPath deploy.zip -ForceImportant
ZIP-файл должен содержать файлы на корневом уровне. Не запакуйте родительскую папку, содержащую файлы. Корневой каталог архива должен напрямую включать
dab-config.json,.config/иstartup.sh.Разверните ZIP-пакет в службе приложений.
az webapp deploy \ --resource-group <resource-group-name> \ --name <app-name> \ --src-path deploy.zip \ --type zip
Проверка развертывания
После развертывания убедитесь, что DAB успешно запускается в службе приложений.
Откройте URL-адрес службы приложений.
https://<app-name>.azurewebsites.netПроверьте конечную точку работоспособности.
https://<app-name>.azurewebsites.net/healthПротестируйте конечные точки REST и GraphQL, используя те же пути сущностей, которые вы проверили локально. Развернутое приложение использует то же самое
dab-config.json, поэтому поведение конечной точки должно соответствовать вашей локальной среде выполнения.Если любая конечная точка возвращает непредвиденное сообщение об ошибке, включите ведение журнала приложений и просмотрите журналы.
az webapp log config \ --name <app-name> \ --resource-group <resource-group-name> \ --application-logging filesystem \ --level information az webapp log tail \ --name <app-name> \ --resource-group <resource-group-name>
Настройка проверки подлинности (необязательно)
Защитите конечную точку службы приложений с помощью Microsoft Entra ID для использования в рабочей среде.
Подробные инструкции см. в разделе "Настройка проверки подлинности службы приложений".
Important
Поставщик AppService проверки подлинности доверяет заголовкам, внедренным проверкой подлинности службы приложений dab-config.json. Убедитесь, что проверка подлинности службы приложений включена при использовании этого поставщика в рабочей среде. Дополнительные сведения см. в статье Easy Auth (Служба приложений).
Note
Проверка подлинности службы приложений защищает входящий трафик к конечной точке. Разрешения сущности DAB по-прежнему управляют операциями, которые позволяет среда выполнения. Если требуется доступ на основе ролей, обновите разрешения сущности, чтобы использовать определенные роли, а не anonymous:*.
Очистите ресурсы
Когда вы больше не нуждаетесь в демонстрационном приложении или ресурсах, удалите соответствующее развертывание и все ресурсы.
az group delete \
--name <resource-group-name> \
--yes \
--no-wait
Связанный контент
- Простая проверка подлинности (служба приложений)
- Справочник по файлу конфигурации
- Настройка узла среды выполнения и проверки подлинности
- Развертывание в Контейнеры приложений Azure
- Интеграция с Application Insights