Självstudie: Anslut en App Services-webbapp till Azure Database for MySQL – flexibel server i ett virtuellt nätverk

GÄLLER FÖR: Azure Database for MySQL – flexibel server

Den här självstudien visar hur du skapar och ansluter en Azure App Service-webbapp till en flexibel Azure Database for MySQL-serverinstans som är isolerad i samma eller olika virtuella nätverk.

I den här självstudien får du lära dig hur man

  • Skapa en flexibel Azure Database for MySQL-serverinstans i ett virtuellt nätverk
  • Skapa ett undernät för att delegera till App Service och skapa en webbapp
  • Lägga till webbappen i det virtuella nätverket
  • Anslut till flexibel Azure Database for MySQL-server från webbappen
  • Anslut en webbapp och en flexibel Azure Database for MySQL-serverinstans isolerad i olika virtuella nätverk

Förutsättningar

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar. Med ett kostnadsfritt Azure-konto kan du prova Azure Database for MySQL – flexibel server kostnadsfritt i 12 månader. Mer information finns i Prova Azure Database for MySQL – flexibel server kostnadsfritt.

Den här artikeln kräver att du kör Azure CLI version 2.0 eller senare lokalt. Kör kommandot az --version om du vill se vilken version som är installerad. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.

Du måste logga in på ditt konto med kommandot az login . Observera egenskapen ID från kommandoutdata för det motsvarande prenumerationsnamnet.

az login

Om du har flera prenumerationer ska du välja lämplig prenumeration där resursen ska debiteras. Välj det specifika prenumerations-ID:t under ditt konto med hjälp av kommandot az account set. Ersätt prenumerations-ID-egenskapen från az login-utdata för din prenumeration till platshållaren för prenumerations-ID.

az account set --subscription <subscription ID>

Skapa en flexibel Azure Database for MySQL-serverinstans

Skapa en privat Azure Database for MySQL– flexibel serverinstans i ett virtuellt nätverk (VNET) med följande kommando:

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

Kopiera anslutningssträng och namnet på det nya virtuella nätverket. Det här kommandot utför följande åtgärder, vilket kan ta några minuter:

  • Skapa resursgruppen om den inte redan finns.
  • Genererar ett servernamn om det inte anges.
  • Skapa ett nytt virtuellt nätverk VNETName för din nya flexibla Azure Database for MySQL-serverinstans och undernät i det här virtuella nätverket för den flexibla serverinstansen Azure Database for MySQL. Kontrollera att namnet är unikt.
  • Skapar administratörsanvändarnamnet , lösenordet för servern om det inte anges.
  • Skapar en tom databas med namnet flexibleserverdb.

Kommentar

Anteckna ditt lösenord som genereras åt dig om det inte anges. Om du glömmer lösenordet måste du återställa lösenordet med hjälp az mysql flexible-server update av kommandot .

Skapa undernät för App Service-slutpunkt

Nu behöver du ett undernät som delegeras till App Service Web App-slutpunkten. Kör följande kommando för att skapa ett nytt undernät i samma virtuella nätverk som azure database for MySQL– flexibel serverinstans skapades.

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

Anteckna namnet på det virtuella nätverket och undernätet efter det här kommandot, eftersom det skulle behövas för att lägga till en VNET-integreringsregel för webbappen när den har skapats.

Skapa en webbapp

I det här avsnittet skapar du appvärd i App Service-appen och ansluter den här appen till Azure Database for MySQL– flexibel serverdatabas. Kontrollera att du är i lagringsplatsens rot för programkoden i terminalen.

Skapa en App Service-app (värdprocessen) med kommandot az webapp up.

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

Kommentar

  • För argumentet --location använder du samma plats som du gjorde för databasen i föregående avsnitt.
  • Ersätt <appnamn> med ett unikt namn i hela Azure (serverslutpunkten är https://\<app-name>.azurewebsites.net). Tillåtna tecken för <appnamn> är A-Z, 0-9 och -. Ett bra mönster är att använda en kombination av företagets namn och en appidentifierare.
  • App Service Basic-nivån stöder inte VNET-integrering. Använd Standard eller Premium.

Det här kommandot utför följande åtgärder, vilket kan ta några minuter:

  • Skapa resursgruppen om den inte redan finns. (I det här kommandot använder du samma resursgrupp som du skapade databasen i tidigare.)
  • Skapa App Service-planen testappserviceplan på prisnivån Basic (B1) om den inte finns. --plan och --sku är valfria.
  • Skapa App Service-appen om den inte finns.
  • Aktivera standardloggning för appen, om den inte redan är aktiverad.
  • Ladda upp lagringsplatsen med hjälp av ZIP-distribution med versionsautomation aktiverat.

Lägga till webbappen i det virtuella nätverket

Använd kommandot az webapp vnet-integration för att lägga till en regional integrering av virtuella nätverk i en webbapp. Ersätt <vnet-name> och <undernätsnamn med det virtuella nätverk och undernätsnamn som Azure Database for MySQL flexibel serverinstans använder.

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

Konfigurera miljövariabler för att ansluta databasen

När koden nu har distribuerats till App Service är nästa steg att ansluta appen till Azure Database for MySQL– flexibel serverinstans i Azure. Appkoden förväntar sig att hitta databasinformation i ett antal miljövariabler. Om du vill ange miljövariabler i App Service skapar du "appinställningar" med az webapp config appsettings set kommandot .

az webapp config appsettings set --settings DBHOST="<mysql-server-name>.mysql.database.azure.com" DBNAME="flexibleserverdb" DBUSER="<username>" DBPASS="<password>"
  • Ersätt <mysql-server-name>, <username> och <password> för det nyligen skapade kommandot Azure Database for MySQL – flexibel server.
  • Ersätt <användarnamn> och <lösenord> med de autentiseringsuppgifter som kommandot också genererade åt dig.
  • Resursgruppen och appnamnet hämtas från cachelagrade värden i .azure/config-filen.
  • Kommandot skapar inställningar med namnet DBHOST, DBNAME, DBUSER och DBPASS. Om programkoden använder ett annat namn för databasinformationen använder du dessa namn för appinställningarna som anges i koden.

Konfigurera webbappen så att den tillåter alla utgående anslutningar inifrån det virtuella nätverket.

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

App Service-webbapp och Azure Database for MySQL – flexibel serverinstans i olika virtuella nätverk

Om du har skapat App Service-appen och den flexibla serverinstansen Azure Database for MySQL i olika virtuella nätverk (VNet) måste du utföra följande två steg för att upprätta en sömlös anslutning:

  • Anslut de två virtuella nätverken med VNet-peering (lokal eller global). Se Anslut virtuella nätverk med peeringguide för virtuella nätverk.
  • Länka Azure Database for MySQL–flexibel serverinstans Privat DNS zon till webbappens virtuella nätverk med hjälp av virtuella nätverkslänkar. Om du använder Azure-portalen eller Azure CLI för att skapa flexibla Azure Database for MySQL-serverinstanser i ett virtuellt nätverk, etableras en ny privat DNS-zon automatiskt i din prenumeration med hjälp av det servernamn som angetts. Gå till Azure Database for MySQL–flexibel serverinstans privata DNS-zon och följ guiden Så här länkar du den privata DNS-zonen till ett virtuellt nätverk för att konfigurera en länk till ett virtuellt nätverk.

Rensa resurser

Rensa alla resurser som du skapade i självstudien med hjälp av följande kommando. Det här kommandot tar bort alla resurser i den här resursgruppen.

az group delete -n myresourcegroup

Nästa steg