Développer une API de données à l’aide d’Azure Web App pour conteneurs

Effectué

Le développement d’une API de données à l’aide d’Azure Web App pour conteneurs offre une solution robuste et évolutive pour les applications modernes. En s’appuyant sur la puissance des conteneurs et des services managés d’Azure, les développeurs peuvent créer, déployer et gérer des API performantes et fiables en toute simplicité. Cette approche est un choix idéal pour le paysage logiciel moderne, car elle permet non seulement de simplifier le processus de développement, mais aussi d’améliorer la portabilité et la scalabilité des applications.

Découvrir les avantages liés à l’utilisation de Web App pour conteneurs

  • Portabilité : les conteneurs encapsulent l’application et ses dépendances, garantissant ainsi une exécution cohérente dans différents environnements. Cela permet d’éliminer les problèmes de type « ça marche sur ma machine » et de rendre le déploiement sur différentes plateformes fluide.

  • Extensibilité : Azure Web App pour conteneurs autorise la mise à l’échelle automatique en fonction de la demande. Cela signifie que votre API de données peut gérer une charge accrue sans intervention manuelle, garantissant ainsi un haut niveau de disponibilité et de performance.

  • Gestion simplifiée : Azure gère l’infrastructure sous-jacente, notamment la mise à jour corrective du système d’exploitation, l’équilibrage de charge et l’approvisionnement des capacités. Les développeurs peuvent ainsi se concentrer sur l’écriture de code plutôt que sur la gestion des serveurs.

Générer une API de données à l’aide d’Azure Web App pour conteneurs

Pour générer une API de données à l’aide d’Azure Web App pour conteneurs, vous devez créer une application conteneur avec l’image DAB, attribuer les autorisations nécessaires, configurer un fichier Dockerfile et mettre à jour l’application avec la nouvelle image et les informations d’identification. Enfin, vous récupérez le nom de domaine et testez l’API.

Avant de commencer, vérifiez que vous disposez d’un abonnement Azure, d’un groupe de ressources et d’un accès à Azure Cloud Shell.

Créer une application de conteneur

Vous pouvez créer une instance Azure Container Apps en effectuant les étapes suivantes.

  1. Utilisez az containerapp env create pour créer un environnement Azure Container Apps.

    az containerapp env create \ 
      --resource-group $RESOURCE_GROUP_NAME \
      --name $CONTAINER_ENV_NAME \
      --logs-destination none \
      --location $LOCATION
    
  2. Utilisez la commande az containerapp create pour créer une application conteneur à l’aide de l’image conteneur DAB mcr.microsoft.com/azure-databases/data-api-builder.

    az containerapp create \ 
      --resource-group $RESOURCE_GROUP_NAME \
      --environment $CONTAINER_ENV_NAME \
      --name $API_CONTAINER_NAME \
      --image "mcr.microsoft.com/azure-databases/data-api-builder" \
      --ingress "external" \
      --target-port "5000" \
      --system-assigned
    

Vous pouvez ensuite obtenir l’identificateur principal de l’identité managée avec az identity show.

Attribuer des autorisations

Attribuez les autorisations de l’identité managée affectée par le système pour lire des données à partir d’Azure SQL et lire et écrire dans Azure Container Registry.

az role assignment create \
  --assignee $CURRENT_USER_PRINCIPAL_ID \
  --role $ROLE_ID \
  --scope $RESOURCE_GROUP_ID

Créer une instance Azure Container Registry

Pour créer une instance Azure Container Registry, exécutez la commande suivante.

az acr create \
  --resource-group $RESOURCE_GROUP_NAME \
  --name <CONTAINER_REGISTRY_NAME> \
  --sku "Standard" \
  --location <LOCATION> \
  --admin-enabled false

Générer et déployer une image conteneur

  1. Pour la phase de génération, utilisez l’image conteneur mcr.microsoft.com/dotnet/sdk.

  2. Installez DAB CLI.

    RUN dotnet tool install Microsoft.DataApiBuilder
    
  3. Créez un fichier de configuration pour votre connexion Azure SQL Database à la base de données source en exécutant RUN dotnet tool run dab -- init.

  4. Créez des entités à mapper aux tables de la base de données source.

    RUN dotnet tool run dab -- add Address --source "SalesLT.Address" --permissions "anonymous:read"
    
  5. Copiez le fichier de configuration dans l’image conteneur mcr.microsoft.com/azure-databases/data-api-builder finale.

  6. Générez l’image en tant que tâche Azure Container Registry en exécutant az acr build pour générer votre image.

  7. Configurez l’application conteneur pour qu’elle utilise le registre de conteneurs.

    az containerapp registry set \
      --name <container-app-name> \
      --resource-group <resource-group-name> \
      --server <container-registry-login-server> \
      --username <container-registry-username> \
      --password <container-registry-password>
    
  8. Créez un secret avec la chaîne de connexion Azure SQL.

    az containerapp secret set \
      --name <container-app-name> \
      --resource-group <resource-group-name> \
      --secrets "SQLConnectionString=<your-sql-connection-string>"
    
  9. Mettez à jour l’application conteneur avec la nouvelle image conteneur personnalisée et la chaîne de connexion.

    az containerapp update \
      --name <container-app-name> \
      --resource-group <resource-group-name> \
      --image <container-registry-login-server>/<image-name>:<tag> \
      --secrets "SQLConnectionString=<your-sql-connection-string>"
    
  10. Récupérez le nom de domaine complet de l’application conteneur.

    az containerapp show \
      --name <container-app-name> \
      --resource-group <resource-group-name> \
      --query "properties.configuration.ingress.fqdn" \
      --output "tsv"
    

Ces étapes mettent à jour l’application conteneur Azure avec la nouvelle image conteneur personnalisée et les informations d’identification, et récupèrent le nom de domaine complet de l’application conteneur.

Enfin, accédez à l’URL et testez l’API pour vous assurer que tout fonctionne correctement.

Remarque

Pour obtenir des étapes détaillées sur le déploiement du générateur d’API de données sur Azure Container Apps avec Azure CLI, consultez Tutoriel : Déployer le générateur d’API de données sur Azure Container Apps avec Azure CLI.