Zelfstudie: een App Services-web-app Verbinding maken naar Azure Database for MySQL - Flexible Server in een virtueel netwerk

VAN TOEPASSING OP: Azure Database for MySQL - Flexibele server

In deze zelfstudie leert u hoe u een Azure-app Service-web-app maakt en verbindt met een flexibele Azure Database for MySQL-serverinstantie die is geïsoleerd binnen dezelfde of verschillende virtuele netwerken.

In deze zelfstudie leert u het volgende:

  • Een exemplaar van een flexibele Azure Database for MySQL-server maken in een virtueel netwerk
  • Een subnet maken om te delegeren aan App Service en een web-app te maken
  • De web-app toevoegen aan het virtuele netwerk
  • Verbinding maken naar azure Database for MySQL flexibele server vanuit de web-app
  • Verbinding maken een web-app en een flexibele serverinstantie van Azure Database for MySQL geïsoleerd in verschillende VNets

Vereisten

Als u geen Azure-abonnement hebt, maakt u een gratis Azure-account voordat u begint. Op dit moment kunt u met een gratis Azure-account Azure Database for MySQL - Flexible Server 12 maanden gratis proberen. Zie Azure Database for MySQL - Flexible Server gratis uitproberen voor meer informatie.

In dit artikel moet u Azure CLI-versie 2.0 of later lokaal uitvoeren. Voer de opdracht az --version uit om de geïnstalleerde versie te zien. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

U moet zich aanmelden bij uw account met behulp van de opdracht az login. Let op de id-eigenschap van de opdrachtuitvoer voor de naam van het desbetreffende abonnement.

az login

Als u meerdere abonnementen hebt, kiest u het juiste abonnement waarin de resource moet worden gefactureerd. Selecteer de specifieke abonnements-id in uw account met de opdracht az account set. Gebruik de eigenschap abonnement-id uit de az login-uitvoer voor uw abonnement in de tijdelijke aanduiding voor de abonnement-id.

az account set --subscription <subscription ID>

Een exemplaar van een flexibele Azure Database for MySQL-server maken

Maak een privéexemplaren van Een flexibele Azure Database for MySQL-server in een virtueel netwerk (VNET) met behulp van de volgende opdracht:

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

Kopieer de verbindingsreeks en de naam van het zojuist gemaakte virtuele netwerk. Deze opdracht voert de volgende acties uit, dit kan enkele minuten duren:

  • Maak de resourcegroep als deze nog niet bestaat.
  • Hiermee wordt een servernaam gegenereerd als deze niet wordt opgegeven.
  • Maak een nieuw virtueel netwerk VNETName voor uw nieuwe exemplaar van de flexibele Azure Database for MySQL-server en het subnet in dit virtuele netwerk voor het flexibele serverexemplaren van Azure Database for MySQL. Zorg ervoor dat de naam uniek is.
  • Hiermee maakt u de gebruikersnaam van de beheerder en het wachtwoord voor uw server indien niet opgegeven.
  • Hiermee maakt u een lege database met de naam flexibleserverdb.

Notitie

Noteer uw wachtwoord dat voor u wordt gegenereerd als dit niet is opgegeven. Als u het wachtwoord vergeet, moet u het wachtwoord opnieuw instellen met behulp van de az mysql flexible-server update opdracht.

Subnet maken voor App Service-eindpunt

U hebt nu een subnet nodig dat is gedelegeerd aan het App Service-web-app-eindpunt. Voer de volgende opdracht uit om een nieuw subnet te maken in hetzelfde virtuele netwerk als het flexibele serverexemplaren van Azure Database for MySQL.

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

Noteer de naam van het virtuele netwerk en de subnetnaam na deze opdracht, zoals nodig is om de VNET-integratieregel voor de web-app toe te voegen nadat deze is gemaakt.

Een webtoepassing maken

In deze sectie maakt u een app-host in de App Service-app en verbindt u deze app met de flexibele serverdatabase van Azure Database for MySQL. Controleer of u zich in de hoofdmap bevindt van de opslagplaats die de code van de app bevat.

Maak een App Service-app (het hostproces) met de opdracht az webapp up.

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

Notitie

  • Gebruik voor het locatieargument -- dezelfde locatie als voor de database in het vorige gedeelte.
  • Vervang <de app-naam> door een unieke naam in alle Azure (het servereindpunt is https://\<app-name>.azurewebsites.net). Toegestane tekens voor <app-naam> zijn A-Z, 0-9 en -. Het is handig om een een combinatie van uw bedrijfsnaam en een app-id te gebruiken.
  • De App Service Basic-laag biedt geen ondersteuning voor VNET-integratie. Gebruik Standard of Premium.

Deze opdracht voert de volgende acties uit, dit kan enkele minuten duren:

  • Maak de resourcegroep als deze nog niet bestaat. (In deze opdracht gebruikt u dezelfde resourcegroep waarin u de database eerder hebt gemaakt.)
  • Maak het App Service-plan testappserviceplan in de prijscategorie Basic (B1), als het nog niet bestaat. --plan en --sku zijn optioneel.
  • Maak de App Service-app als deze nog niet bestaat.
  • Schakel standaardlogboeken voor de app in, als die nog niet zijn ingeschakeld.
  • Upload de opslagplaats met behulp van ZIP-implementatie, met ingeschakelde bouwautomatisering.

De web-app toevoegen aan het virtuele netwerk

Gebruik de opdracht az webapp vnet-integration om een regionale virtuele netwerkintegratie toe te voegen aan een webapp. Vervang <vnet-naam> en <subnetnaam door het virtuele netwerk en de subnetnaam die het exemplaar van de flexibele Azure Database for MySQL-server gebruikt.

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

De omgevingsvariabelen configureren om de database te verbinden

Nu de code is geïmplementeerd in App Service, is de volgende stap het verbinden van de app met het flexibele serverexemplaren van Azure Database for MySQL in Azure. De code van de app verwacht om database-informatie te vinden in een aantal omgevingsvariabelen. Als u omgevingsvariabelen wilt instellen in App Service, maakt u 'app-instellingen' met de az webapp config appsettings set opdracht.

az webapp config appsettings set --settings DBHOST="<mysql-server-name>.mysql.database.azure.com" DBNAME="flexibleserverdb" DBUSER="<username>" DBPASS="<password>"
  • Vervang <mysql-servernaam>, <gebruikersnaam> en< wachtwoord> voor de zojuist gemaakte opdracht flexibele Azure Database for MySQL-server.
  • Vervang <de gebruikersnaam> en <het wachtwoord> door de referenties die de opdracht ook voor u heeft gegenereerd.
  • De resourcegroep en de naam van de app worden opgehaald uit de cachewaarden in het bestand . azure/config.
  • Met de opdracht worden instellingen gemaakt met de naam DBHOST, DBNAME, DBUSER en DBPASS. Als uw toepassingscode een andere naam gebruikt voor de databasegegevens, gebruikt u deze namen voor de app-instellingen zoals vermeld in de code.

Configureer de web-app om alle uitgaande verbindingen vanuit het virtuele netwerk toe te staan.

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

App Service-web-app en azure Database for MySQL flexibele serverinstantie in verschillende virtuele netwerken

Als u de App Service-app en het exemplaar van de flexibele Azure Database for MySQL-server in verschillende virtuele netwerken (VNets) hebt gemaakt, moet u de volgende twee stappen uitvoeren om een naadloze verbinding tot stand te brengen:

  • Verbinding maken de twee VNets met behulp van VNet-peering (lokaal of globaal). Zie Verbinding maken virtuele netwerken met peeringhandleiding voor virtuele netwerken.
  • Koppel de Privé-DNS zone van het azure Database for MySQL flexibele serverexemplaren aan het VNet van de web-app met behulp van virtuele netwerkkoppelingen. Als u Azure Portal of De Azure CLI gebruikt om exemplaren van flexibele Azure Database for MySQL-servers te maken in een VNet, wordt automatisch een nieuwe privé-DNS-zone ingericht in uw abonnement met behulp van de opgegeven servernaam. Navigeer naar de privé-DNS-zone van de Flexibele Server-instantie van Azure Database for MySQL en volg de instructies voor het koppelen van de privé-DNS-zone aan een virtuele netwerkhandleiding voor het instellen van een virtuele netwerkkoppeling.

Resources opschonen

Verwijder alle resources die u hebt gemaakt in de zelfstudie met behulp van de volgende opdracht. Met deze opdracht verwijdert u alle resources in deze resourcegroep.

az group delete -n myresourcegroup

Volgende stappen