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

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

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

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

  • Skapa en flexibel Azure Database for PostgreSQL-serverinstans i ett virtuellt nätverk
  • Skapa en webbapp
  • Lägga till webbappen i det virtuella nätverket
  • Anslut till flexibel Azure Database for PostgreSQL-server från webbappen

Förutsättningar

  • Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

  • Installera Azure CLI.version 2.0 eller senare lokalt. Kör kommandot az --version om du vill se vilken version som är installerad.

  • 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.

    az account set --subscription <subscription ID>
    

Skapa en flexibel Azure Database for PostgreSQL-serverinstans i ett nytt virtuellt nätverk

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

az postgres flexible-server create --resource-group demoresourcegroup --name demoserverpostgres --vnet demoappvnet --location westus2

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 för din nya flexibla Serverinstans och undernät för Azure Database for PostgreSQL i det här virtuella nätverket för den flexibla serverinstansen Azure Database for PostgreSQL.
  • Skapar administratörsanvändarnamnet , lösenordet för servern om det inte anges.
  • Skapar en tom databas med namnet postgres

Här är exempelutdata.

Local context is turned on. Its information is saved in working directory /home/jane. You can run `az local-context off` to turn it off.
Command argument values from local context: --resource-group demoresourcegroup, --location: eastus
Checking the existence of the resource group ''...
Creating Resource group 'demoresourcegroup ' ...
Creating new vnet "demoappvnet" in resource group "demoresourcegroup" ...
Creating new subnet "Subnet095447391" in resource group "demoresourcegroup " and delegating it to "Microsoft.DBforPostgreSQL/flexibleServers"...
Creating Azure Database for PostgreSQL flexible server instance 'demoserverpostgres' in group 'demoresourcegroup'...
Your server 'demoserverpostgres' is using sku 'Standard_D2s_v3' (Paid Tier). Please refer to https://aka.ms/postgres-pricing for pricing details
Make a note of your password. If you forget, you have to reset your password with 'az postgres flexible-server update -n demoserverpostgres --resource-group demoresourcegroup -p <new-password>'.
{
  "connectionString": "postgresql://generated-username:generated-password@demoserverpostgres.postgres.database.azure.com/postgres?sslmode=require",
  "host": "demoserverpostgres.postgres.database.azure.com",
  "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/demoresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/demoserverpostgres",
  "location": "East US",
  "password": "generated-password",
  "resourceGroup": "demoresourcegroup",
  "skuname": "Standard_D2s_v3",
  "subnetId": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/demoresourcegroup/providers/Microsoft.Network/virtualNetworks/VNET095447391/subnets/Subnet095447391",
  "username": "generated-username",
  "version": "12"
}

Skapa en webbapp

I det här avsnittet skapar du appvärd i App Service-appen, ansluter den här appen till Azure Database for PostgreSQL– flexibel serverdatabas och distribuerar sedan koden till den värden. Kontrollera att du är i lagringsplatsens rot för programkoden i terminalen. Observera att Basic-planen inte stöder VNET-integrering. Använd Standard eller Premium.

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

az webapp up --resource-group demoresourcegroup --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. 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.

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-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.

Skapa undernät för webbapp

Innan du aktiverar VNET-integrering måste du ha ett undernät som är delegerat till App Service Web App. Innan du skapar undernätet kan du visa databasens undernätsadress för att undvika att använda samma adressprefix för webbappens undernät.

az network vnet show --resource-group demoresourcegroup -n demoappvnet

Kör följande kommando för att skapa ett nytt undernät i samma virtuella nätverk som azure database for PostgreSQL– flexibel serverinstans skapades. Uppdatera adressprefixet för att undvika konflikter med azure database for PostgreSQL–undernätet för flexibel server.

az network vnet subnet create --resource-group demoresourcegroup --vnet-name demoappvnet --name webappsubnet  --address-prefixes 10.0.1.0/24  --delegations Microsoft.Web/serverFarms

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.

az webapp vnet-integration add --resource-group demoresourcegroup -n  mywebapp --vnet demoappvnet --subnet webappsubnet

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 PostgreSQL– 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 använder du kommandot az webapp config appsettings set .

  
az webapp config appsettings set  --name mywebapp --settings DBHOST="<postgres-server-name>.postgres.database.azure.com" DBNAME="postgres" DBUSER="<username>" DBPASS="<password>" 
  • Ersätt postgres-server-name,username,password för det nyligen skapade kommandot Azure Database for PostgreSQL – flexibel serverinstans.
  • 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 demoresourcegroup --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 demoresourcegroup

Nästa steg