Öğretici: Sanal ağda, PostgreSQL için Azure veritabanı-uygulama Hizmetleri Web uygulaması ile esnek sunucu oluşturma

Bu öğreticide, bir sanal ağIçindeki PostgreSQL Için Azure veritabanı-esnek sunucu Ile Azure App Service Web uygulaması oluşturma işlemlerinin nasıl yapılacağı gösterilmektedir.

Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • Sanal ağda bir PostgreSQL esnek sunucusu oluşturma
  • Web uygulaması oluşturma
  • Web uygulamasını sanal ağa ekleme
  • web uygulamasından postgres 'e Bağlan

Önkoşullar

  • Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

  • Azure CLI. sürüm 2,0 veya üstünü yerel olarak yükler. Yüklü sürümü görmek için az --version komutunu çalıştırın.

  • Az Login komutunu kullanarak hesabınızda oturum açın. Komut çıktısındaki ilgili abonelik adına karşılık gelen id özelliğinin değerini not edin.

    az login
    
  • Birden fazla aboneliğiniz varsa kaynağın faturalanacağı uygun aboneliği seçin. az account set komutunu kullanarak hesabınız altındaki belirli bir abonelik kimliğini seçin.

    az account set --subscription <subscription ID>
    

Yeni bir sanal ağda bir PostgreSQL esnek sunucusu oluşturma

Aşağıdaki komutu kullanarak bir sanal ağ (VNET) içinde özel bir esnek sunucu oluşturun:

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

Bu komut, birkaç dakika sürebilen aşağıdaki eylemleri gerçekleştirir:

  • Zaten mevcut değilse kaynak grubunu oluşturun.
  • Sağlanmazsa bir sunucu adı oluşturur.
  • Veritabanı sunucusu için bu sanal ağ içindeki yeni postgreSQL sunucunuz ve alt ağınız için yeni bir sanal ağ oluşturun.
  • Sağlanmazsa, sunucunuz için Yönetici Kullanıcı adı, parola oluşturur.
  • Postgres adlı boş bir veritabanı oluşturur

Örnek çıktı aşağıda verilmiştir.

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

Web Uygulaması oluşturma

Bu bölümde App Service uygulamasında uygulama konağı oluşturur, bu uygulamayı Postgres veritabanına bağlayın ve ardından kodunuzu bu konağa dağıtın. Terminalde uygulama kodunuzun depo kökünde olduğunuzdan emin olun. Not temel planı VNET tümleştirmesini desteklemez. Lütfen standart veya Premium kullanın.

Az WebApp up komutuyla bir App Service uygulaması (ana bilgisayar işlemi) oluşturun

az webapp up --resource-group demoresourcegroup --location westus2 --plan testappserviceplan --sku P2V2 --name mywebapp

Not

  • --Location bağımsız değişkeni için, önceki bölümde veritabanıyla aynı konumu kullanın.
  • <app-name>Tüm Azure genelinde benzersiz bir adla değiştirin. İçin izin verilen karakterler <app-name> A-Z, 0-9 ve-. İyi bir model, şirketinizin adının ve uygulama tanımlayıcısının bir birleşimini kullanmaktır.

Bu komut, birkaç dakika sürebilen aşağıdaki eylemleri gerçekleştirir:

  • Zaten mevcut değilse kaynak grubunu oluşturun. (Bu komutta veritabanını daha önce oluşturduğunuz kaynak grubunu kullanırsınız.)
  • Yoksa App Service uygulamasını oluşturun.
  • Zaten etkinleştirilmemişse, uygulama için varsayılan günlüğü etkinleştirin.
  • derleme otomasyonu etkinken zıp dağıtımını kullanarak depoyu Upload.

Web uygulaması için alt ağ oluşturma

VNET tümleştirmesini etkinleştirmeden önce, App Service Web uygulamasına atanmış alt ağa sahip olmanız gerekir. Alt ağı oluşturmadan önce, Web uygulaması alt ağı için aynı adres ön ekini kullanmaktan kaçınmak üzere veritabanı alt ağ adresini görüntüleyin.

az network vnet show --resource-group demoresourcegroup -n demoappvnet

Veritabanı sunucusu oluşturulduğu sanal ağda yeni bir alt ağ oluşturmak için aşağıdaki komutu çalıştırın. Veritabanı alt ağıyla çakışmayı önlemek için adres ön ekini güncelleştirin.

az network vnet subnet create --resource-group demoresourcegroup --vnet-name demoappvnet --name webappsubnet  --address-prefixes 10.0.1.0/24  --delegations Microsoft.Web/serverFarms

Web uygulamasını sanal ağa ekleme

Bir WebApp 'ye bölgesel sanal ağ tümleştirmesi eklemek için az WebApp VNET-Integration komutunu kullanın.

az webapp vnet-integration add --resource-group demoresourcegroup -n  mywebapp --vnet demoappvnet --subnet webappsubnet

Veritabanını bağlamak için ortam değişkenlerini yapılandırma

Kod artık App Service 'e dağıtıldığına göre, bir sonraki adım, uygulamayı Azure 'daki esnek sunucuya bağlayabilmektedir. Uygulama kodu, çeşitli ortam değişkenlerinde veritabanı bilgilerini bulmayı bekler. App Service içinde ortam değişkenlerini ayarlamak için az WebApp config appSettings set komutunu kullanın.

  
az webapp config appsettings set  --name mywebapp --settings DBHOST="<postgres-server-name>.postgres.database.azure.com" DBNAME="postgres" DBUSER="<username>" DBPASS="<password>" 
  • Yeni oluşturulan esnek sunucu komutu için Postgres-sunucu adı,Kullanıcı adı,parola ' yı değiştirin.
  • <username> Ve ' i, <password> komutun sizin için oluşturduğu kimlik bilgileriyle değiştirin.
  • Kaynak grubu ve uygulama adı,. Azure/config dosyasındaki önbelleğe alınmış değerlerden çizilir.
  • Komut dbhost, dbname, DBUSER _ ve _ * dbpass * * adlı ayarları oluşturur. Uygulama kodunuz veritabanı bilgileri için farklı bir ad kullanıyorsa, bu adları kodda belirtildiği gibi uygulama ayarları için kullanın.

Web uygulamasını, sanal ağ içinden gelen tüm giden bağlantılara izin verecek şekilde yapılandırın.

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

Kaynakları temizleme

Aşağıdaki komutu kullanarak öğreticide oluşturduğunuz tüm kaynakları temizleyin. Bu komut, bu kaynak grubundaki tüm kaynakları siler.

az group delete -n demoresourcegroup

Sonraki adımlar