Kurz: vytvoření Azure Database for PostgreSQL flexibilního serveru s webovou aplikací App Services ve virtuální síti
V tomto kurzu se dozvíte, jak vytvořit webovou aplikaci v Azure App Service se Azure Database for PostgreSQLm flexibilním serverem ve virtuální síti.
V tomto kurzu se naučíte, jak:
- Vytvoření PostgreSQL flexibilního serveru ve virtuální síti
- Vytvoření webové aplikace
- Přidání webové aplikace do virtuální sítě
- Připojení Postgres z webové aplikace
Požadavky
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
Nainstalujte rozhraní příkazového řádku Azure CLI. verze 2,0 nebo novější místně. Pokud chcete zjistit nainstalovanou verzi, spusťte příkaz
az --version.Přihlaste se k účtu pomocí příkazu AZ Login . Z výstupu příkazu si poznamenejte vlastnost id pro odpovídající název předplatného.
az loginPokud máte více předplatných, vyberte odpovídající předplatné, ve kterém se má prostředek účtovat. Ve svém účtu vyberte pomocí příkazu az account set konkrétní ID předplatného.
az account set --subscription <subscription ID>
Vytvoření PostgreSQL flexibilního serveru v nové virtuální síti
Pomocí následujícího příkazu vytvořte privátní server v rámci virtuální sítě (VNET):
az postgres flexible-server create --resource-group demoresourcegroup --name demoserverpostgres --vnet demoappvnet --location westus2
Tento příkaz provede následující akce, což může trvat několik minut:
- Vytvořte skupinu prostředků, pokud ještě neexistuje.
- Vygeneruje název serveru, pokud není k dispozici.
- Vytvořte novou virtuální síť pro nový server postgreSQL a podsíť v rámci této virtuální sítě pro databázový server.
- Vytvoří uživatelské jméno správce a heslo pro váš server, pokud není k dispozici.
- Vytvoří prázdnou databázi s názvem Postgres .
Zde je ukázkový výstup.
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"
}
Vytvoření webové aplikace
V této části vytvoříte hostitele aplikací v aplikaci App Service, připojíte tuto aplikaci k databázi Postgres a potom do tohoto hostitele nasadíte svůj kód. Ujistěte se, že jste v terminálu kořenový adresář úložiště kódu vaší aplikace. Poznámka: základní plán nepodporuje integraci virtuální sítě. Použijte prosím Standard nebo Premium.
Vytvoření aplikace App Service (hostitelský proces) pomocí příkazu AZ WebApp up
az webapp up --resource-group demoresourcegroup --location westus2 --plan testappserviceplan --sku P2V2 --name mywebapp
Poznámka
- Pro argument --Location použijte stejné umístění jako u databáze v předchozí části.
- Nahraďte <app-name> jedinečným názvem v rámci všech Azure. Povolené znaky pro <app-name> jsou a-Z, 0-9 a-. Dobrým vzorem je použití kombinace názvu vaší společnosti a identifikátoru aplikace.
Tento příkaz provede následující akce, což může trvat několik minut:
- Vytvořte skupinu prostředků, pokud ještě neexistuje. (V tomto příkazu použijete stejnou skupinu prostředků, ve které jste databázi vytvořili dříve.)
- Pokud neexistuje, vytvořte aplikaci App Service.
- Povolí výchozí protokolování pro aplikaci, pokud ještě není povolené.
- Upload úložiště pomocí nasazení ZIP s povolenou automatizací sestavení.
Vytvoření podsítě pro webovou aplikaci
Než povolíte integraci virtuální sítě, musíte mít podsíť, která je delegovaná na App Service webovou aplikaci. Před vytvořením podsítě zobrazte adresu podsítě databáze, abyste se vyhnuli použití stejné předpony adresy pro podsíť webové aplikace.
az network vnet show --resource-group demoresourcegroup -n demoappvnet
Spuštěním následujícího příkazu vytvořte novou podsíť ve stejné virtuální síti, jakou vytvořil databázový server. Aktualizujte předponu adresy tak, aby nedocházelo ke konfliktu s podsítí databáze.
az network vnet subnet create --resource-group demoresourcegroup --vnet-name demoappvnet --name webappsubnet --address-prefixes 10.0.1.0/24 --delegations Microsoft.Web/serverFarms
Přidání webové aplikace do virtuální sítě
Pomocí příkazu AZ WebApp VNet-Integration přidejte integraci místní virtuální sítě do WebApp.
az webapp vnet-integration add --resource-group demoresourcegroup -n mywebapp --vnet demoappvnet --subnet webappsubnet
Konfigurace proměnných prostředí pro připojení databáze
S kódem teď nasazeným do App Service je dalším krokem připojení aplikace k flexibilnímu serveru v Azure. Kód aplikace očekává nalezení informací o databázi v řadě proměnných prostředí. Chcete-li nastavit proměnné prostředí v App Service, použijte příkaz 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>"
- Nahraďte Postgres-Server-Name,username a Password u nově vytvořeného flexibilního serveru.
- Nahraďte <username> a <password> s přihlašovacími údaji, které příkaz vygeneroval také.
- Název skupiny prostředků a aplikace se vykreslí z hodnot uložených v mezipaměti v souboru. Azure/config.
- Příkaz vytvoří nastavení s názvem DBHOST, dbname, DBUSER _ a _ * DBPASS * *. Pokud kód aplikace používá jiný název pro informace o databázi, pak použijte tyto názvy pro nastavení aplikace, jak je uvedeno v kódu.
Nakonfigurujte webovou aplikaci tak, aby povolovala všechna odchozí připojení v rámci virtuální sítě.
az webapp config set --name mywebapp --resource-group demoresourcegroup --generic-configurations '{"vnetRouteAllEnabled": true}'
Vyčištění prostředků
Všechny prostředky, které jste vytvořili v tomto kurzu, vyčistěte pomocí následujícího příkazu. Tento příkaz odstraní všechny prostředky v této skupině prostředků.
az group delete -n demoresourcegroup