Öğretici: Sanal ağda App Services Web App ile PostgreSQL için Azure Veritabanı - Esnek Sunucu örneği oluşturma
ŞUNLAR IÇIN GEÇERLIDIR: PostgreSQL için Azure Veritabanı - Esnek Sunucu
Bu öğreticide, sanal ağ içinde esnek PostgreSQL için Azure Veritabanı sunucuyla Azure Uygulaması Service Web uygulamasının nasıl oluşturulacağı gösterilmektedir.
Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:
- Sanal ağda PostgreSQL için Azure Veritabanı esnek sunucu örneği oluşturma
- Web uygulaması oluşturma
- Web uygulamasını sanal ağa ekleme
- Web uygulamasından PostgreSQL için Azure Veritabanı esnek sunucuya bağlanma
Önkoşullar
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Azure CLI sürüm 2.0 veya üzerini yerel olarak yükleyin (veya CLI'nın önceden yüklenmiş olduğu Azure Cloud Shell'i kullanın). 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 PostgreSQL için Azure Veritabanı esnek sunucu örneği oluşturma
Aşağıdaki komutu kullanarak bir sanal ağ (VNET) içinde özel PostgreSQL için Azure Veritabanı esnek sunucu örneği oluşturun:
az postgres flexible-server create --resource-group demoresourcegroup --name demoserverpostgres --vnet demoappvnet --location westus2
Bu komut aşağıdaki eylemleri gerçekleştirir ve bu işlem birkaç dakika sürebilir:
- Henüz yoksa kaynak grubunu oluşturun.
- Sağlanmadıysa bir sunucu adı oluşturur.
- PostgreSQL için Azure Veritabanı esnek sunucu örneği için bir sanal ağ ve alt ağ oluşturur.
- Sağlanmadıysa sunucunuz için yönetici kullanıcı adı ve parola oluşturur.
- postgres adlı boş bir veritabanı oluşturur.
Örnek çıktı aşağıda verilmişti.
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"
}
Web Uygulaması Oluşturma
Bu bölümde App Service uygulamasında uygulama konağı oluşturacak, bu uygulamayı PostgreSQL için Azure Veritabanı esnek sunucu veritabanına bağlayacak ve ardından kodunuzu bu konağa dağıtacaksınız. Terminaldeki uygulama kodunuzun depo kökünde olduğunuzdan emin olun. Not Temel Plan, sanal ağ tümleştirmeyi desteklemez. Standart veya Premium kullanın.
az webapp up komutuyla bir App Service uygulaması (konak 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ı için kullandığınız konumu kullanın.
- Uygulama adını> tüm Azure'da benzersiz bir adla değiştirin<. Uygulama adı> için <izin verilen karakterler A-Z, 0-9 ve -'dır. İyi bir desen, şirketinizin adıyla uygulama tanımlayıcısının bir birleşimini kullanmaktır.
Bu komut aşağıdaki eylemleri gerçekleştirir ve bu işlem birkaç dakika sürebilir:
- Henüz yoksa kaynak grubunu oluşturun. (Bu komutta, veritabanını daha önce oluşturduğunuz kaynak grubunu kullanırsınız.)
- App Service uygulaması yoksa oluşturun.
- Uygulama için varsayılan günlüğe kaydetmeyi (henüz etkinleştirilmemişse) etkinleştirin.
- Derleme otomasyonu etkinken ZIP dağıtımını kullanarak depoyu karşıya yükleyin.
Web Uygulaması için Alt Ağ Oluşturma
VNET tümleştirmesini etkinleştirmeden önce App Service Web App'e temsilci olarak atanan alt ağınız olmalıdır. Alt ağı oluşturmadan önce, web uygulaması alt ağı için aynı adres ön ekini kullanmaktan kaçınmak için veritabanı alt ağ adresini görüntüleyin.
az network vnet show --resource-group demoresourcegroup -n demoappvnet
PostgreSQL için Azure Veritabanı esnek sunucu örneğinin oluşturulduğu sanal ağda yeni bir alt ağ oluşturmak için aşağıdaki komutu çalıştırın. PostgreSQL için Azure Veritabanı esnek sunucu 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 web uygulamasına 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ığında, sonraki adım uygulamayı Azure'daki PostgreSQL için Azure Veritabanı esnek sunucu örneğine bağlamaktır. Uygulama kodu, birçok ortam değişkeninde veritabanı bilgilerini bulmayı bekler. App Service'te 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 PostgreSQL için Azure Veritabanı esnek sunucu örneği komutu için postgres-server-name,username,password değerini değiştirin.
- Kullanıcı adını> ve <parolayı> 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 alınır.
- komutu DBHOST, DBNAME, DBUSER* ve DBPASS adlı ayarlar oluşturur. Uygulama kodunuz veritabanı bilgileri için farklı bir ad kullanıyorsa, kodda belirtildiği gibi uygulama ayarları için bu adları kullanın.
Web uygulamasını sanal ağ içinden gelen tüm 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