Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Den här artikeln 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 artikeln lär 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 --versionom 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 loginOm du har flera prenumerationer väljer du lämplig prenumeration för fakturering av resursen. Välj det specifika prenumerations-ID:t under ditt konto med kommandot az account set .
az account set --subscription <subscription ID>
Skapa en flexibel serverinstans
Skapa en privat Azure Database for a PostgreSQL– flexibel serverinstans i ett virtuellt nätverk med hjälp av 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:
- Skapar resursgruppen om den inte redan finns.
- Genererar ett servernamn om du inte anger något.
- 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 du inte anger dem.
- 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 en appvärd i en App Service-app, ansluter den här appen till Azure Database for PostgreSQL–databasen för flexibel server och distribuerar sedan koden till den värden. Kontrollera att du är i lagringsplatsens rot för programkoden i terminalen. Basic-planen stöder inte integrering av virtuella nätverk. Använd Standard eller Premium.
Skapa en App Service-app (värdprocessen) genom att använda kommandot az webapp up.
az webapp up --resource-group demoresourcegroup --location westus2 --plan testappserviceplan --sku P2V2 --name mywebapp
Anmärkning
- För
_--location_ argument, använd samma plats som du använde för databasen i föregående avsnitt. - Ersätt
<app-name>med ett unikt namn i hela Azure. Tillåtna tecken för<app-name>ä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:
- Skapar resursgruppen om den inte redan finns. (I det här kommandot använder du samma resursgrupp som du skapade databasen i tidigare.)
- Skapar App Service-appen om den inte finns.
- Aktiverar standardloggning för appen, om den inte redan är aktiverad.
- Laddar upp lagringsplatsen med hjälp av ZIP-distribution med build automation aktiverat.
Skapa undernät för webbapp
Innan du aktiverar integrering av virtuella nätverk behöver du ett undernät som delegeras 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. Uppdatera adressprefixet för att undvika konflikter med Azure Database for PostgreSQL-flexibla server-undernätet.
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 du har distribuerat koden till App Service ansluter du 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 och password med värdena för den nyligen skapade Azure Database for PostgreSQL flexibla serverinstansen.
Ersätt <användarnamn> och <lösenord> med de autentiseringsuppgifter som kommandot också genererade åt dig.
Resursgruppen och appnamnet kommer från de cachelagrade värdena i .azure/config-filen.
Kommandot skapar inställningar med namnet DBHOST, DBNAME, DBUSER och DBPASS. Om programkoden använder olika 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 artikeln 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