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 en flexibel Azure Database for PostgreSQL-server i ett virtuellt nätverk.
I den här kursen får du lära du dig att:
- 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
- Ansluta till en 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 (eller använd Azure Cloud Shell som har CLI förinstallerat). 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.
- Skapar ett virtuellt nätverk och undernät för den flexibla serverinstansen Azure Database for PostgreSQL.
- Skapar administratörsanvändarnamn och lösenord för servern om det inte anges.
- Skapar en tom databas med namnet postgres.
Här är exempelutdata.
Creating Resource Group 'demoresourcegroup'...
Creating new Vnet "demoappvnet" in resource group "demoresourcegroup"
Creating new Subnet "Subnetdemoserverpostgres" in resource group "demoresourcegroup"
Creating a private dns zone demoserverpostgres.private.postgres.database.azure.com in resource group "demoresourcegroup"
Creating PostgreSQL Server '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
Creating PostgreSQL database 'flexibleserverdb'...
Make a note of your password. If you forget, you would have to reset your password with "az postgres flexible-server update -n demoserverpostgres -g demoresourcegroup -p <new-password>".
Try using 'az postgres flexible-server connect' command to test out connection.
{
"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/demoappvnet/subnets/Subnetdemoserverpostgres",
"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. Obs! Basic-planen stöder inte 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 många 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