Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide vous montre comment déployer le générateur d’API de données (DAB) sur Azure App Service à l’aide d’un modèle de déploiement basé sur le code, sans générer ou gérer des images conteneur. App Service fournit une prise en charge intégrée de TLS, de domaines personnalisés, de mise à l’échelle, de supervision et d’authentification Microsoft Entra.
Tip
Si votre environnement utilise des conteneurs, consultez Deploy to Azure Container Apps ou Deploy to Azure Kubernetes Service à la place.
Prerequisites
- Un compte Azure avec un abonnement actif. Créez un compte gratuitement.
- CLI du générateur d'API de données. Installez l’interface CLI.
- Azure CLI. Installez Azure CLI.
- .NET 8 ou version ultérieure installée localement.
- Base de données prise en charge existante accessible à partir d’Azure.
Générer le fichier de configuration
Créez un fichier de configuration DAB pour vous connecter à votre base de données existante.
Créez un répertoire vide sur votre ordinateur local pour stocker les artefacts de configuration et de déploiement.
Initialisez un nouveau fichier de configuration de base à l’aide
dab initde . Utilisez la@env()fonction pour référencer laDATABASE_CONNECTION_STRINGvariable d’environnement afin que les informations d’identification ne soient pas stockées dans le fichier de configuration.dab init --database-type "<database-type>" --connection-string "@env('DATABASE_CONNECTION_STRING')"Important
Remplacez par
<database-type>un type de base de données pris en charge, tel quemssql, ,postgresqlmysqloucosmosdb_nosql. Certains types de base de données nécessitent des paramètres de configuration supplémentaires lors de l’initialisation.Ajoutez au moins une entité de base de données à la configuration. Utilisez la
dab addcommande pour configurer une entité. Répétezdab addautant de fois que nécessaire pour vos entités.dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"Ouvrez et examinez le contenu du fichier dab-config.json . Vérifiez que :
-
data-source.connection-stringUtilise@env('DATABASE_CONNECTION_STRING') - Vos entités et autorisations sont correctes
Important
N’incorporez pas de chaînes de connexion littérales ou de secrets dans
dab-config.json. Utilisez la fonction@env()pour résoudre les valeurs depuis les variables d’environnement au moment de l’exécution.-
Créer un manifeste d’outil local
Utilisez un manifeste d’outil de .NET local pour que le package de déploiement inclut DAB comme dépendance de projet. Cette approche évite de s’appuyer sur un outil installé globalement dans App Service.
Créez un manifeste d’outil local .NET dans votre répertoire de projet.
dotnet new tool-manifestInstallez le générateur d’API de données en tant qu’outil local.
dotnet tool install microsoft.dataapibuilder --prereleaseVérifiez que le manifeste existe à
.config/dotnet-tools.json.Note
L’indicateur
--prereleaseinstalle la dernière version préliminaire du générateur d’API de données. Supprimez l’indicateur pour installer la dernière version stable à la place.
Tester localement
Avant de déployer sur Azure, vérifiez que le runtime démarre et que vos points de terminaison fonctionnent.
Définissez la chaîne de connexion en tant que variable d’environnement locale.
$env:DATABASE_CONNECTION_STRING = "<your-connection-string>"Démarrez le runtime DAB localement.
dab startTestez le point de terminaison REST en accédant au Swagger UI ou en effectuant une demande à
/api/<entity-name>.Testez le point de terminaison GraphQL à l’adresse
/graphql.Arrêtez le runtime après avoir vérifié tous les points de terminaison.
Créer les ressources App Service
Créez les ressources Azure requises pour héberger DAB sur App Service.
Créez un groupe de ressources. Vous utilisez ce groupe de ressources pour toutes les nouvelles ressources de ce guide.
az group create \ --name <resource-group-name> \ --location <location>Tip
Envisagez de nommer le groupe de ressources msdocs-dab-appservice.
Créez un plan App Service.
az appservice plan create \ --name <plan-name> \ --resource-group <resource-group-name> \ --sku B1 \ --is-linuxNote
Ce guide utilise le niveau B1 (De base) sur Linux.
Créez l’application web avec le runtime .NET 8.
az webapp create \ --name <app-name> \ --resource-group <resource-group-name> \ --plan <plan-name> \ --runtime "DOTNETCORE:8.0"Tip
Validez les runtimes disponibles pour votre plan avec
az webapp list-runtimes --os linux.
Configurer les paramètres App Service
Configurez les variables d’environnement et la commande de démarrage dont App Service a besoin pour exécuter DAB.
Configurez le fournisseur d’authentification pour App Service. Ce paramètre indique à DAB d’approuver l’authentification intégrée d’App Service (Easy Auth) pour les informations d’identité.
dab configure --runtime.host.authentication.provider AppServiceDéfinissez la chaîne de connexion de la base de données en tant que paramètre de l'application App Service.
az webapp config appsettings set \ --name <app-name> \ --resource-group <resource-group-name> \ --settings DATABASE_CONNECTION_STRING="<your-connection-string>"Tip
Utilisez un chaîne de connexion qui n'inclut pas de secrets. Utilisez plutôt des identités managées et Microsoft Entra l’authentification pour gérer l’accès entre votre base de données et App Service. Pour plus d’informations, consultez les services Azure qui utilisent des identités managées.
Créez un script de démarrage qui restaure le manifeste d’outil local et démarre DAB. Créez un fichier nommé
startup.shdans le répertoire de votre projet.#!/bin/sh dotnet tool restore dotnet tool run dab startImportant
S'assurer que
startup.shutilise les terminaisons de ligne LF (Unix) au lieu de CRLF. Windows éditeurs peuvent enregistrer avec CRLF par défaut, ce qui entraîne l’échec du script sur l’hôte App Service Linux.Définissez la commande de démarrage dans App Service.
az webapp config set \ --name <app-name> \ --resource-group <resource-group-name> \ --startup-file "startup.sh"
Déployer sur App Service
Empaqueter vos fichiers projet et les déployer sur App Service à l’aide du déploiement ZIP.
Créez un package de déploiement contenant vos fichiers projet. Au minimum, incluez :
dab-config.json.config/dotnet-tools.jsonstartup.sh
Compress-Archive -Path dab-config.json, .config, startup.sh -DestinationPath deploy.zip -ForceImportant
Le fichier ZIP doit contenir des fichiers au niveau racine. Ne compressez pas un dossier parent qui contient les fichiers. La racine d’archivage doit inclure
dab-config.json,.config/etstartup.shdirectement.Déployez le package ZIP sur App Service.
az webapp deploy \ --resource-group <resource-group-name> \ --name <app-name> \ --src-path deploy.zip \ --type zip
Vérifier le déploiement
Après le déploiement, vérifiez que DAB démarre correctement sur App Service.
Ouvrez l’URL de l’App Service.
https://<app-name>.azurewebsites.netVérifiez le point de terminaison de santé.
https://<app-name>.azurewebsites.net/healthTestez les points de terminaison REST et GraphQL à l’aide des mêmes chemins d’entité que ceux que vous avez testés localement. L’application déployée utilise le même
dab-config.json, donc le comportement du point de terminaison doit correspondre à votre environnement d'exécution local.Si un point de terminaison retourne une erreur inattendue, activez la journalisation des applications et passez en revue les journaux.
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>
Configurer l’authentification (facultatif)
Protégez votre point de terminaison App Service avec Microsoft Entra ID pour une utilisation en production.
Pour obtenir des instructions détaillées, consultez Configurer l’authentification App Service.
Important
Le AppService fournisseur d’authentification dans dab-config.json fait confiance aux en-têtes injectés par l’authentification App Service. Vérifiez que l’authentification App Service est activée lors de l’utilisation de ce fournisseur en production. Pour plus d’informations, consultez Authentification simple (App Service).
Note
L’authentification de l'App Service protège l'accès à votre endpoint. Les autorisations d’entité DAB régissent toujours les opérations que le runtime autorise. Si vous souhaitez un accès en fonction du rôle, mettez à jour vos autorisations d’entité pour utiliser des rôles spécifiques au lieu de anonymous:*.
Nettoyer les ressources
Lorsque vous n’avez plus besoin de l’exemple d’application ou de ressources, supprimez le déploiement correspondant et toutes les ressources.
az group delete \
--name <resource-group-name> \
--yes \
--no-wait