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

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

Den här självstudien visar hur du skapar en Azure App Service-webbapp med MySQL – flexibel server i ett virtuellt nätverk.

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

  • Skapa en flexibel MySQL-server i ett virtuellt nätverk
  • Skapa ett undernät att delegera till App Service
  • Skapa en webbapp
  • Lägga till webbappen i det virtuella nätverket
  • Anslut till Postgres från webbappen

Förutsättningar

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

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 egenskapen prenumerations-ID från az login output för din prenumeration i platshållaren för prenumerations-ID.

az account set --subscription <subscription ID>

Skapa en Azure Database for MySQL flexibel server

Skapa en privat flexibel server i ett virtuellt nätverk (VNET) med följande kommando:

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

Kopiera anslutningssträngen 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 MySQL-server och undernät i det här virtuella nätverket för databasservern. Kontrollera att namnet är unikt.
  • Skapar administratörens användarnamn , lösenord för servern om inget annat anges.
  • Skapar en tom databas med namnet flexibleserverdb

Anteckning

Anteckna lösenordet som ska genereras åt dig om du inte har angett det. Om du glömmer lösenordet måste du återställa lösenordet med az mysql flexible-server update kommandot

Skapa undernät för App Service slutpunkt

Nu behöver vi ha ett undernät som har delegerats till App Service webbappens slutpunkt. Kör följande kommando för att skapa ett nytt undernät i samma virtuella nätverk som databasservern 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ätets namn efter det här kommandot, eftersom du behöver det 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 en appvärd i App Service och ansluter den här appen till MySQL-databasen. Kontrollera att du är i lagringsplatsens rot i 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

Anteckning

  • För argumentet --location använder du samma plats som du gjorde för databasen i föregående avsnitt.
  • Ersätt <app-name> med ett unikt namn i hela Azure (serverslutpunkten är https://\<app-name>.azurewebsites.net ). Tillåtna tecken <app-name> för ä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 plan på testappserviceplan prisnivån Basic (B1), om den inte finns. --plan och --sku är valfria.
  • Skapa App Service app om den inte finns.
  • Aktivera standardloggning för appen, om det inte redan är aktiverat.
  • Upload lagringsplatsen med ZIP-distribution med byggautomatisering 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 subnet-name med det virtuella nätverket och undernätsnamnet som den flexibla servern 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 distribueras till App Service är nästa steg att ansluta appen till den flexibla servern 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 kommandot set.

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 för flexibel server.
  • Ersätt < användarnamn> < och lösenord> autentiseringsuppgifter som kommandot även genererade åt dig.
  • Resursgruppen och appnamnet hämtas från de cachelagrade värdena i .azure/config-filen.
  • Kommandot skapar inställningar med namnen 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}'

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