Självstudie: Skapa en Azure Database for PostgreSQL – flexibel server med App Services-webbapp i virtuellt nätverk
Den här självstudien visar hur du skapar en Azure App Service-webbapp med Azure Database for PostgreSQL – flexibel server i ett virtuellt nätverk.
I den här självstudien får du lära dig hur man
- Skapa en flexibel PostgreSQL-server i ett virtuellt nätverk
- 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 en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Installera Azure CLI.version 2.0 eller senare lokalt. 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 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 PostgreSQL-server i ett nytt virtuellt nätverk
Skapa en privat flexibel server 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 postgreSQL-server och undernät i det här virtuella nätverket för databasservern.
- Skapar administratörens användarnamn , lösenord för servern om inget annat anges.
- Skapar en tom databas med namnet postgres
Här är exempel på utdata.
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 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
Make a note of your password. If you forget, you would have to resetyour 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 en appvärd i App Service, ansluter den här appen till Postgres-databasen och distribuerar sedan koden till värden. Kontrollera att du är i lagringsplatsens rot i 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
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. 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.
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 app om den inte finns.
- Aktivera standardloggning för appen, om det inte redan är aktiverat.
- Upload lagringsplatsen med ZIP-distribution med byggautomatisering aktiverat.
Skapa undernät för webbapp
Innan du aktiverar VNET-integrering måste du ha ett undernät som har delegerats till App Service-webbappen. Innan du skapar undernätet bör du visa databasens undernätsadress för att undvika att använda samma adressprefix för webbappsundernätet.
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 databasservern skapades. Uppdatera adressprefixet för att undvika konflikter med databasens undernät.
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 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. Ange miljövariabler i App Service 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 nya flexibla serverkommandot.
- Ersätt <username> och med de <password> autentiseringsuppgifter som kommandot också 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 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