Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leest u hoe u een Azure App Service-web-app maakt met een flexibele Azure Database for PostgreSQL-server in een virtueel netwerk.
In dit artikel leert u het volgende:
- Een azure Database for PostgreSQL Flexible Server-exemplaar maken in een virtueel netwerk
- Een web-app maken
- De web-app toevoegen aan het virtuele netwerk
- Verbinding maken met flexibele Azure Database for PostgreSQL-server vanuit de web-app
Vereiste voorwaarden
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Installeer Azure CLI versie 2.0 of hoger lokaal (of gebruik Azure Cloud Shell, waarop CLI vooraf is geïnstalleerd). Voer de opdracht
az --versionuit om de geïnstalleerde versie te zien.Meld u aan bij uw account met behulp van de opdracht az login . Let op de id-eigenschap van de opdrachtuitvoer voor de naam van het desbetreffende abonnement.
az loginAls u meerdere abonnementen hebt, kiest u het juiste abonnement voor het factureren van de resource. Selecteer de specifieke abonnements-id onder uw account met behulp van de opdracht az account set .
az account set --subscription <subscription ID>
Een flexibele serverinstantie maken
Maak een persoonlijke Azure Database for a PostgreSQL Flexible Server Instance in een virtueel netwerk met behulp van de volgende opdracht:
az postgres flexible-server create --resource-group demoresourcegroup --name demoserverpostgres --vnet demoappvnet --location westus2
Met deze opdracht worden de volgende acties uitgevoerd. Dit kan enkele minuten duren:
- Hiermee maakt u de resourcegroep als deze nog niet bestaat.
- Hiermee wordt een servernaam gegenereerd als u er geen opgeeft.
- Hiermee maakt u een virtueel netwerk en subnet voor het flexibele serverexemplaren van Azure Database for PostgreSQL.
- Hiermee maakt u de gebruikersnaam en het wachtwoord voor de beheerder voor uw server als u deze niet opgeeft.
- Hiermee maakt u een lege database met de naam postgres.
Hier volgt de voorbeelduitvoer.
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"
}
Een web-app maken
In deze sectie maakt u een app-host in een App Service-app, verbindt u deze app met de flexibele Azure Database for PostgreSQL-serverdatabase en implementeert u vervolgens uw code op die host. Controleer of u zich in de hoofdmap bevindt van de opslagplaats die de code van de app bevat. Het Basisplan biedt geen ondersteuning voor integratie van virtuele netwerken. Gebruik Standard of Premium.
Maak een App Service-app (het hostproces) met behulp van de az webapp up opdracht.
az webapp up --resource-group demoresourcegroup --location westus2 --plan testappserviceplan --sku P2V2 --name mywebapp
Opmerking
- Gebruik voor de
_--location_ argumentdatabase dezelfde locatie als voor de database in de vorige sectie. - Vervang
<app-name>met een unieke naam in Azure. Toegestane tekens<app-name>zijn A-Z, 0-9 en -. Het is handig om een een combinatie van uw bedrijfsnaam en een app-id te gebruiken.
Met deze opdracht worden de volgende acties uitgevoerd. Dit kan enkele minuten duren:
- Hiermee maakt u de resourcegroep als deze nog niet bestaat. (In deze opdracht gebruikt u dezelfde resourcegroep waarin u de database eerder hebt gemaakt.)
- Maakt de App Service-app aan als deze niet bestaat.
- Hiermee schakelt u standaardlogboekregistratie in voor de app, als deze nog niet is ingeschakeld.
- Uploadt de opslagplaats met behulp van ZIP-implementatie met buildautomatisering ingeschakeld.
Subnet voor web-app maken
Voordat u integratie van virtuele netwerken inschakelt, hebt u een subnet nodig dat is gedelegeerd aan App Service Web App. Voordat u het subnet maakt, bekijkt u het subnetadres van de database om te voorkomen dat hetzelfde adresvoorvoegsel wordt gebruikt voor het subnet van de web-app.
az network vnet show --resource-group demoresourcegroup -n demoappvnet
Voer de volgende opdracht uit om een nieuw subnet te maken in hetzelfde virtuele netwerk als de flexibele PostgreSQL-serverinstantie van Azure Database. Werk het adresvoorvoegsel bij om conflicten met het subnet van de flexibele Server van Azure Database for PostgreSQL te voorkomen.
az network vnet subnet create --resource-group demoresourcegroup --vnet-name demoappvnet --name webappsubnet --address-prefixes 10.0.1.0/24 --delegations Microsoft.Web/serverFarms
De web-app toevoegen aan het virtuele netwerk
Gebruik de opdracht az webapp vnet-integration om een regionale virtuele netwerkintegratie toe te voegen aan een web-app.
az webapp vnet-integration add --resource-group demoresourcegroup -n mywebapp --vnet demoappvnet --subnet webappsubnet
De omgevingsvariabelen configureren om de database te verbinden
Nadat u de code naar App Service hebt geïmplementeerd, verbindt u de app met het flexibele serverexemplaar van Azure Database for PostgreSQL in Azure. De app-code verwacht databasegegevens te vinden in veel omgevingsvariabelen. Als u omgevingsvariabelen wilt instellen in App Service, gebruikt u de opdracht 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>"
Vervang postgres-servernaam, gebruikersnaam en wachtwoord door de waarden voor het zojuist gemaakte exemplaar van de flexibele Azure Database for PostgreSQL-server.
Vervang <> en door de referenties die de opdracht ook voor u heeft gegenereerd.
De resourcegroep en app-naam zijn afkomstig van de waarden in de cache in het .azure/config-bestand.
Met de opdracht worden instellingen gemaakt met de naam DBHOST, DBNAME, DBUSER en DBPASS. Als uw toepassingscode verschillende namen gebruikt voor de databasegegevens, gebruikt u deze namen voor de app-instellingen zoals vermeld in de code.
Configureer de web-app om alle uitgaande verbindingen vanuit het virtuele netwerk toe te staan.
az webapp config set --name mywebapp --resource-group demoresourcegroup --generic-configurations '{"vnetRouteAllEnabled": true}'
De hulpbronnen opschonen
Verwijder alle resources die u in het artikel hebt gemaakt met behulp van de volgende opdracht. Met deze opdracht verwijdert u alle resources in deze resourcegroep.
az group delete -n demoresourcegroup