Sdílet prostřednictvím


Kurz: Vytvoření instance flexibilního serveru Azure Database for PostgreSQL pomocí webové aplikace App Services ve virtuální síti

PLATÍ PRO: Flexibilní server Azure Database for PostgreSQL

V tomto kurzu se dozvíte, jak vytvořit webovou aplikaci služby Aplikace Azure s flexibilním serverem Azure Database for PostgreSQL v rámci virtuální sítě.

V tomto kurzu se naučíte:

  • Vytvoření instance flexibilního serveru Azure Database for PostgreSQL ve virtuální síti
  • Vytvoření webové aplikace
  • Přidání webové aplikace do virtuální sítě
  • Připojení k flexibilnímu serveru Azure Database for PostgreSQL z webové aplikace

Požadavky

  • Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

  • Nainstalujte Azure CLI verze 2.0 nebo novější místně (nebo použijte Azure Cloud Shell s předinstalovaným rozhraním příkazového řádku). Pokud chcete zjistit nainstalovanou verzi, spusťte příkaz az --version.

  • Přihlaste se ke svému úč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 login
    
  • Pokud 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í instance flexibilního serveru Azure Database for PostgreSQL v nové virtuální síti

Pomocí následujícího příkazu vytvořte privátní instanci flexibilního serveru Azure Database for PostgreSQL ve virtuální síti:

az postgres flexible-server create --resource-group demoresourcegroup --name demoserverpostgres --vnet demoappvnet --location westus2

Tento příkaz provede následující akce, které mohou trvat několik minut:

  • Vytvořte skupinu prostředků, pokud ještě neexistuje.
  • Vygeneruje název serveru, pokud není zadaný.
  • Vytvoří virtuální síť a podsíť pro instanci flexibilního serveru Azure Database for PostgreSQL.
  • Pokud není zadané, vytvoří uživatelské jméno a heslo správce pro váš server.
  • Vytvoří prázdnou databázi s názvem postgres.

Tady je ukázkový výstup.

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"
}

Vytvoření webové aplikace

V této části vytvoříte hostitele aplikace v aplikaci App Service, připojíte tuto aplikaci k flexibilní serverové databázi Azure Database for PostgreSQL a pak na tohoto hostitele nasadíte svůj kód. Ujistěte se, že jste v kořenovém adresáři úložiště kódu aplikace v terminálu. Poznámka: Plán Basic nepodporuje integraci virtuální sítě. Použijte Standard nebo Premium.

Pomocí příkazu az webapp up vytvořte aplikaci App Service (hostitelský proces).

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 pro databázi v předchozí části.
  • Nahraďte <název> aplikace jedinečným názvem ve všech Azure. Povolené znaky pro <název> aplikace 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, které mohou 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 dříve vytvořili databázi.)
  • Pokud aplikace App Service neexistuje, vytvořte ji.
  • Pokud ještě není povolené, povolte pro aplikaci výchozí protokolování.
  • Nahrajte úložiště pomocí nasazení ZIP s povolenou automatizací sestavení.

Vytvoření podsítě pro webovou aplikaci

Před povolením integrace virtuální sítě musíte mít podsíť delegovanou do webové aplikace služby App Service. 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 jako instanci flexibilního serveru Azure Database for PostgreSQL. Aktualizujte předponu adresy, aby nedocházelo ke konfliktu s podsítí flexibilního serveru Azure Database for PostgreSQL.

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 do webové aplikace místní integraci virtuální sítě.

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, který je teď nasazený do služby App Service, je dalším krokem připojení aplikace k instanci flexibilního serveru Azure Database for PostgreSQL v Azure. Kód aplikace očekává, že najde informace o databázi v mnoha proměnných prostředí. K nastavení proměnných prostředí ve službě 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, password pro nově vytvořený příkaz instance flexibilního serveru Azure Database for PostgreSQL.
  • Nahraďte <uživatelské jméno> a <heslo> přihlašovacími údaji, které vám příkaz vygeneroval.
  • Skupina prostředků a název aplikace se načítají 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 informací o databázi, použijte tyto názvy pro nastavení aplikace, jak je uvedeno v kódu.

Nakonfigurujte webovou aplikaci tak, aby umožňovala všechna odchozí připojení z virtuální sítě.

az webapp config set --name mywebapp --resource-group demoresourcegroup --generic-configurations '{"vnetRouteAllEnabled": true}'

Vyčištění prostředků

Pomocí následujícího příkazu vyčistíte všechny prostředky, které jste vytvořili v kurzu. Tento příkaz odstraní všechny prostředky v této skupině prostředků.

az group delete -n demoresourcegroup