Tutoriel : Connecter une application web App Services à Azure Database pour MySQL – Serveur flexible dans un réseau virtuel

S’APPLIQUE À : Azure Database pour MySQL – Serveur flexible

Ce tutoriel vous montre comment créer et connecter une application web Azure App Service à une instance d’Azure Database pour MySQL - Serveur flexible isolée dans des réseaux virtuels identiques ou différents.

Ce didacticiel vous apprendra à effectuer les opérations suivantes :

  • Créer une instance d’Azure Database pour MySQL - Serveur flexible dans un réseau virtuel
  • Créer un sous-réseau pour déléguer à App Service et créer une application web
  • Ajouter l'application web au réseau virtuel
  • Se connecter à Azure Database pour MySQL - Serveur flexible à partir de l’application web
  • Connecter une application web et une instance d’Azure Database pour MySQL - Serveur flexible isolée dans différents VNet

Prérequis

Si vous n’en avez pas, créez un compte gratuit Azure avant de commencer. Actuellement, avec un compte gratuit Azure, vous pouvez essayer gratuitement Azure Database pour MySQL – Serveur flexible pendant 12 mois. Pour plus d’informations, consultez Essayer gratuitement Azure Database pour MySQL – Serveur flexible.

Cet article nécessite que vous exécutiez localement Azure CLI version 2.0 ou ultérieure. Pour afficher la version installée, exécutez la commande az --version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.

Vous devrez vous connecter à votre compte à l’aide de la commande az login. Notez la propriété id depuis la sortie de commande pour le nom d’abonnement correspondant.

az login

Si vous avez plusieurs abonnements, sélectionnez l’abonnement approprié dans lequel la ressource doit être facturée. Sélectionnez l’ID d’abonnement spécifique sous votre compte à l’aide de la commande az account set. Remplacez la propriété ID d’abonnement de la sortie az login pour votre abonnement dans l’espace réservé de l’ID d’abonnement.

az account set --subscription <subscription ID>

Créez une instance de serveur flexible Azure Database pour MySQL

Créez une instance d’Azure Database pour MySQL - Serveur flexible privée dans un réseau virtuel (VNet) à l’aide de la commande suivante :

az mysql flexible-server create --resource-group myresourcegroup --location westus2 --vnet VNETName

Copiez la chaîne de connexion et le nom du réseau virtuel nouvellement créé. Cette commande effectue les actions suivantes qui peuvent prendre quelques minutes :

  • S'il n'existe pas encore, créez le groupe de ressources.
  • Génère un nom de serveur s'il n'est pas fourni.
  • Créez un réseau virtuel, VNETName pour votre nouvelle instance d’Azure Database pour MySQL - Serveur flexible, et un sous-réseau au sein de ce réseau virtuel pour l’instance d’Azure Database pour MySQL - Serveur flexible. Assurez-vous que le nom est unique.
  • Crée un nom d’utilisateur administrateur, un mot de passe pour votre serveur, s’il n’est pas fourni.
  • Crée une base de données vide nommée flexibleserverdb.

Remarque

Si aucun mot de passe n’est fourni, notez celui qui est généré automatiquement pour vous. Si vous oubliez le mot de passe, vous devez le réinitialiser à l’aide de la commande az mysql flexible-server update.

Créer un sous-réseau pour le point de terminaison App Service

Vous avez désormais besoin d’un sous-réseau délégué au point de terminaison de l’application web App Service. Exécutez la commande suivante pour créer un sous-réseau dans le même réseau virtuel que celui où l’instance d’Azure Database pour MySQL - Serveur flexible a été créée.

az network vnet subnet create -g myresourcegroup --vnet-name VNETName --name webappsubnetName  --address-prefixes 10.0.1.0/24  --delegations Microsoft.Web/serverFarms --service-endpoints Microsoft.Web

Notez le nom du réseau virtuel et le nom du sous-réseau après cette commande, car vous en aurez besoin pour ajouter une règle d’intégration au réseau virtuel pour l’application web après sa création.

Créer une application web

Dans cette section, vous créez un hôte d’application au sein de l’application App Service, et vous connectez cette application à la base de données Azure Database pour MySQL - Serveur flexible. Vérifiez que vous êtes à la racine du référentiel de votre code d'application dans le terminal.

Créez une application App Service (le processus hôte) avec la commande az webapp up.

az webapp up --resource-group myresourcegroup --location westus2 --plan testappserviceplan --sku P2V2 --name mywebapp

Remarque

  • Pour l'argument --location, utilisez le même emplacement que pour la base de données de la section précédente.
  • Remplacez <app-name> par un nom unique dans l’ensemble d’Azure (le point de terminaison de serveur est https://\<app-name>.azurewebsites.net). Les caractères autorisés pour <app-name> sont A-Z, 0-9 et -. Un bon modèle consiste à utiliser une combinaison du nom de votre société et d’un identificateur d’application.
  • Le niveau De base App Service ne prend pas en charge l’intégration au réseau virtuel. Utilisez le niveau Standard ou Premium.

Cette commande effectue les actions suivantes qui peuvent prendre quelques minutes :

  • S’il n’existe pas encore, créez le groupe de ressources (dans cette commande, vous utilisez le groupe de ressources dans lequel vous avez créé la base de données précédemment).
  • Créez le plan App Service testappserviceplan au niveau tarifaire De base (B1), le cas échéant. --plan et --sku sont facultatifs.
  • Si elle n’existe pas, créez l’application App Service.
  • Activez la journalisation par défaut pour l’application, si elle ne l’est pas déjà.
  • Chargez le dépôt à l’aide du déploiement ZIP avec l’automatisation de la génération activée.

Ajouter l’application web au réseau virtuel

Utilisez la commande az webapp vnet-integration pour ajouter une intégration de réseau virtuel régional à une application web. Remplacez <vnet-name> et <subnet-name par les noms de réseau virtuel et de sous-réseau utilisés par l’instance d’Azure Database pour MySQL - Serveur flexible.

az webapp vnet-integration add -g myresourcegroup -n  mywebapp --vnet VNETName --subnet webappsubnetName

Configurer des variables d’environnement pour connecter la base de données

Une fois le code déployé sur App Service, l’étape suivante consiste à connecter l’application à l’instance d’Azure Database pour MySQL - Serveur flexible dans Azure. Le code de l’application s’attend à trouver des informations sur la base de données dans plusieurs variables d’environnement. Pour définir des variables d’environnement dans App Service, vous devez créer des « paramètres d’application » à l’aide de la commande az webapp config appsettings set.

az webapp config appsettings set --settings DBHOST="<mysql-server-name>.mysql.database.azure.com" DBNAME="flexibleserverdb" DBUSER="<username>" DBPASS="<password>"
  • Remplacez <mysql-server-name>, <username> et <password> par les valeurs appropriées dans la commande Azure Database pour MySQL - Serveur flexible créée.
  • Remplacez <username> et <password> par les informations d’identification que la commande a également générées pour vous.
  • Les noms du groupe de ressources et de l’application sont tirés des valeurs mises en cache dans le fichier .azure/config.
  • La commande crée des paramètres nommés DBHOST, DBNAME, DBUSER et DBPASS. Si votre code d’application utilise un nom différent pour les informations de base de données, utilisez ces noms pour les paramètres de l’application, comme indiqué dans le code.

Configurez l’application Web pour autoriser toutes les connexions sortantes à partir du réseau virtuel.

az webapp config set --name mywebapp --resource-group myresourcesourcegroup --generic-configurations '{"vnetRouteAllEnabled": true}'

Application web App Service et instance d’Azure Database pour MySQL - Serveur flexible dans différents réseaux virtuels

Si vous avez créé l’application App Service et l’instance d’Azure Database pour MySQL - Serveur flexible dans des réseaux virtuels (VNet) distincts, vous devez suivre les deux étapes ci-après pour établir une connexion transparente :

  • Connecter les deux réseaux virtuels à l’aide du peering de réseaux virtuels (local ou global). Consultez le guide Connecter des réseaux virtuels à l’aide du peering de réseaux virtuels.
  • Lier la zone DNS privée de l’instance d’Azure Database pour MySQL - Serveur flexible au VNet de l’application web à l’aide de liaisons de réseau virtuel. Si vous utilisez le portail Azure ou l’interface Azure CLI afin de créer des instances d’Azure Database pour MySQL - Serveur flexible dans un VNet, une nouvelle zone DNS privée est approvisionnée automatiquement dans votre abonnement à l’aide du nom de serveur fourni. Accédez à la zone DNS privée de l’instance d’Azure Database pour MySQL - Serveur flexible, puis suivez le Guide pratique pour lier la zone DNS privée à un réseau virtuel afin de configurer une liaison de réseau virtuel.

Nettoyer les ressources

Supprimez toutes les ressources que vous avez créées dans le tutoriel à l'aide de la commande suivante. Cette commande supprime toutes les ressources de ce groupe de ressources.

az group delete -n myresourcegroup

Étapes suivantes