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

[VAN TOEPASSING OP: Azure Database for MySQL - Flexible Server

Deze zelfstudie laat zien hoe u een Azure App Service web-app met MySQL Flexible Server in een virtueel netwerk maakt.

In deze zelfstudie leert u het volgende:

  • Een flexibele MySQL-server maken in een virtueel netwerk
  • Een subnet maken dat u wilt delegeren aan App Service
  • Een webtoepassing maken
  • De web-app toevoegen aan het virtuele netwerk
  • Verbinding maken met Postgres vanuit de web-app

Vereisten

Als u geen Azure-abonnement hebt, maakt u een gratis Azure-account voordat u begint. Met een gratis Azure-account kunt u nu Azure Database for MySQL - Flexible Server 12 maanden gratis uitproberen. Zie Flexibele server gratis proberen 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. Zie Azure CLI installeren als u de CLI wilt installeren of een upgrade wilt uitvoeren.

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 Azure Database for MySQL Flexible Server maken

Maak een flexibele privé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 connection string 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 voor VNETName uw nieuwe MySQL-server en -subnet binnen dit virtuele netwerk voor de databaseserver. 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 het wachtwoord dat voor u wordt gegenereerd als het niet is opgegeven. Als u het wachtwoord vergeet, kunt u het wachtwoord opnieuw instellen met behulp van de opdracht az mysql flexible-server update

Subnet maken voor App Service eindpunt

We moeten nu een subnet hebben dat is gedelegeerd naar App Service web-app-eindpunt. Voer de volgende opdracht uit om een nieuw subnet te maken in hetzelfde virtuele netwerk als de databaseserver is gemaakt.

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. U hebt deze nodig om de VNET-integratieregel voor de web-app toe te voegen nadat deze is gemaakt.

Een webtoepassing maken

In dit gedeelte maakt u een app-host in een App Service-app en verbindt u deze app met de MySQL-database. Controleer of u zich in de hoofdmap bevindt van de opslagplaats die de code van de app bevat.

Een App Service-app maken (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 argument --location dezelfde locatie als voor de database in het vorige gedeelte.
  • Vervang <app-name> door een naam die overal in Azure uniek is (het servereindpunt is https://\<app-name>.azurewebsites.net). Toegestane tekens <app-name> voor zijn A-Z, 0-9 en -. Het is handig om een combinatie van uw bedrijfsnaam en een app-id te gebruiken.
  • 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-name> en <subnet-name door het virtuele netwerk en de naam van het subnet die de flexibele 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 naar App Service, is de volgende stap het verbinden van de app met de flexibele server in Azure. De code van de app verwacht om database-informatie te vinden in een aantal omgevingsvariabelen. Om omgevingsvariabelen in te stellen in App Service, maakt u 'app-instellingen' met de SET-opdracht az webapp config appsettings.

az webapp config appsettings set --settings DBHOST="<mysql-server-name>.mysql.database.azure.com" DBNAME="flexibleserverdb" DBUSER="<username>" DBPASS="<password>"
  • Vervang <mysql-server-name> , <username> en <password> voor de zojuist gemaakte opdracht voor de flexibele server.
  • Vervang <username> en <password> door de referenties die ook door de opdracht voor u zijn 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}'

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