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 montre comment créer et connecter une application web Azure App Service à une instance de serveur flexible Azure Database pour MySQL isolée à l’intérieur de réseaux virtuels identiques ou différents.

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

  • Créer une instance de serveur flexible Azure Database pour MySQL 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 au serveur flexible Azure Database pour MySQL à partir de l’application web
  • Connecter une application web et une instance de serveur flexible Azure Database pour MySQL isolées dans différents réseaux virtuels

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 de serveur flexible Azure Database pour MySQL 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ée un réseau virtuel, VNETName, pour votre nouvelle instance de serveur flexible Azure Database pour MySQL, et votre sous-réseau au sein de ce réseau virtuel pour l’instance de serveur flexible Azure Database pour MySQL. 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 de serveur flexible Azure Database pour MySQL 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 dans l’application App Service et connectez cette application à la base de données du serveur flexible Azure Database pour MySQL. 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 du réseau virtuel et du sous-réseau utilisés par l’instance de serveur flexible Azure Database pour MySQL.

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

Le code étant maintenant déployé sur App Service, l’étape suivante consiste à connecter l’application à l’instance de serveur flexible Azure Database pour MySQL 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> pour la commande du serveur flexible Azure Database pour MySQL nouvellement créé.
  • 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 de serveur flexible Azure Database pour MySQL dans différents réseaux virtuels

Si vous avez créé l’application App Service et l’instance de serveur flexible Azure Database pour MySQL dans des réseaux virtuels (VNets) différents, vous devrez effectuer les deux étapes suivantes 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.
  • Liez la zone DNS privée de l’instance de serveur flexible Azure Database pour MySQL au réseau virtuel de l’application web à l’aide de liaisons de réseau virtuel. Si vous utilisez le portail Azure ou l’interface Azure CLI pour créer des instances de serveur flexible Azure Database pour MySQL 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 de serveur flexible Azure Database pour MySQL et suivez le guide expliquant comment lier la zone DNS privée à un réseau virtuel pour 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