Déployer le générateur d’API de données sur Azure App Service

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.

Diagramme de l'architecture globale après que le déploiement sur Azure App Service est terminé.

Tip

Si votre environnement utilise des conteneurs, consultez Deploy to Azure Container Apps ou Deploy to Azure Kubernetes Service à la place.

Prerequisites

Générer le fichier de configuration

Créez un fichier de configuration DAB pour vous connecter à votre base de données existante.

  1. Créez un répertoire vide sur votre ordinateur local pour stocker les artefacts de configuration et de déploiement.

  2. Initialisez un nouveau fichier de configuration de base à l’aide dab initde . Utilisez la @env() fonction pour référencer la DATABASE_CONNECTION_STRING variable 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 que mssql, , postgresqlmysqlou cosmosdb_nosql. Certains types de base de données nécessitent des paramètres de configuration supplémentaires lors de l’initialisation.

  3. Ajoutez au moins une entité de base de données à la configuration. Utilisez la dab add commande pour configurer une entité. Répétez dab add autant de fois que nécessaire pour vos entités.

    dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"
    
  4. Ouvrez et examinez le contenu du fichier dab-config.json . Vérifiez que :

    • data-source.connection-string Utilise @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.

  1. Créez un manifeste d’outil local .NET dans votre répertoire de projet.

    dotnet new tool-manifest
    
  2. Installez le générateur d’API de données en tant qu’outil local.

    dotnet tool install microsoft.dataapibuilder --prerelease
    
  3. Vérifiez que le manifeste existe à .config/dotnet-tools.json.

    Note

    L’indicateur --prerelease installe 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.

  1. Définissez la chaîne de connexion en tant que variable d’environnement locale.

    $env:DATABASE_CONNECTION_STRING = "<your-connection-string>"
    
  2. Démarrez le runtime DAB localement.

    dab start
    
  3. Testez le point de terminaison REST en accédant au Swagger UI ou en effectuant une demande à /api/<entity-name>.

  4. Testez le point de terminaison GraphQL à l’adresse /graphql.

  5. 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.

  1. 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.

  2. Créez un plan App Service.

    az appservice plan create \
      --name <plan-name> \
      --resource-group <resource-group-name> \
      --sku B1 \
      --is-linux
    

    Note

    Ce guide utilise le niveau B1 (De base) sur Linux.

  3. 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.

  1. 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 AppService
    
  2. Dé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.

  3. Créez un script de démarrage qui restaure le manifeste d’outil local et démarre DAB. Créez un fichier nommé startup.sh dans le répertoire de votre projet.

    #!/bin/sh
    dotnet tool restore
    dotnet tool run dab start
    

    Important

    S'assurer que startup.sh utilise 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.

  4. 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.

  1. Créez un package de déploiement contenant vos fichiers projet. Au minimum, incluez :

    • dab-config.json
    • .config/dotnet-tools.json
    • startup.sh
    Compress-Archive -Path dab-config.json, .config, startup.sh -DestinationPath deploy.zip -Force
    

    Important

    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/et startup.sh directement.

  2. 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.

  1. Ouvrez l’URL de l’App Service.

    https://<app-name>.azurewebsites.net
    
  2. Vérifiez le point de terminaison de santé.

    https://<app-name>.azurewebsites.net/health
    
  3. Testez 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.

  4. 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