البرنامج التعليمي: إنشاء قاعدة بيانات Azure ل PostgreSQL - مثيل خادم مرن باستخدام App Services Web App في الشبكة الظاهرية

يطبق على: قاعدة بيانات Azure لـ PostgreSQL - الخادم المرن

يوضح لك هذا البرنامج التعليمي كيفية إنشاء تطبيق ويب لخدمة تطبيقات Azure باستخدام قاعدة بيانات Azure لخادم PostgreSQL المرن داخل شبكة ظاهرية.

في هذا البرنامج التعليمي ستتعلم:

  • إنشاء مثيل خادم مرن لقاعدة بيانات Azure ل PostgreSQL في شبكة ظاهرية
  • أنشئ تطبيق ويب
  • إضافة تطبيق الويب إلى الشبكة الظاهرية
  • الاتصال إلى قاعدة بيانات Azure لخادم PostgreSQL المرن من تطبيق الويب

المتطلبات الأساسية

  • في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

  • تثبيت Azure CLI (الإصدار 2.0 أو أحدث) لمشاهدة الإصدار المثبت، قم بتشغيل الأمر az --version.

  • سجل الدخول إلى حسابك باستخدام الأمر az login. لاحظ خاصية id من إخراج الأمر لاسم الاشتراك المقابل.

    az login
    
  • في حال وجود اشتراكات متعددة، فيمكن اختيار الاشتراك المناسب الذي يجب أن يتم فيه فوترة المورد. حدد معرف الاشتراك المحدد ضمن حسابك باستخدام الأمر az account set.

    az account set --subscription <subscription ID>
    

إنشاء مثيل خادم مرن لقاعدة بيانات Azure ل PostgreSQL في شبكة ظاهرية جديدة

إنشاء قاعدة بيانات Azure خاصة لمثيل خادم PostgreSQL المرن داخل شبكة ظاهرية (VNET) باستخدام الأمر التالي:

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

ينفذ هذا الأمر الإجراءات التالية، وقد يستغرق ذلك بضع دقائق:

  • أنشأ مجموعة الموارد إذا لم تكن موجودة بالفعل.
  • إنشاء اسم خادم إذا لم يتم توفيره.
  • إنشاء شبكة ظاهرية جديدة لمثيل الخادم المرن الجديد لقاعدة بيانات Azure ل PostgreSQL والشبكة الفرعية داخل هذه الشبكة الظاهرية لمثيل الخادم المرن لقاعدة بيانات Azure ل PostgreSQL.
  • ينشئ اسم مستخدم المشرف وكلمة المرور للخادم الخاص بك إذا لم يتم توفيره.
  • ينشئ قاعدة بيانات فارغة تسمى postgres

هنا هو إخراج العينة.

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 Azure Database for PostgreSQL flexible server instance '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 have to reset your 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"
}

إنشاء تطبيق ويب

في هذا القسم، يمكنك إنشاء مضيف تطبيق في تطبيق App Service، وتوصيل هذا التطبيق بقاعدة بيانات الخادم المرن ل Azure Database for PostgreSQL، ثم نشر التعليمات البرمجية الخاصة بك إلى هذا المضيف. تأكد من أنك في جذر المستودع للتعليمة البرمجية الخاصة بتطبيقك في الجهاز. ملاحظة لا تدعم الخطة الأساسية تكامل VNET. الرجاء استخدام Standard أو Premium.

إنشاء تطبيق خدمة التطبيقات (عملية المضيف) باستخدام الأمر az webapp up

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

إشعار

  • بالنسبة إلى الوسيطة --location، استخدم نفس الموقع الذي استخدمته لقاعدة البيانات في القسم السابق.
  • استبدل <اسم التطبيق> باسم فريد عبر كل Azure. الأحرف المسموح بها لـ <اسم التطبيق> هي AZ و0-9 و-. النمط الجيد هو استخدام مزيج من اسم شركتك ومعرف التطبيق.

ينفذ هذا الأمر الإجراءات التالية، وقد يستغرق ذلك بضع دقائق:

  • أنشأ مجموعة الموارد إذا لم تكن موجودة بالفعل. (في هذا الأمر، يمكنك استخدام مجموعة الموارد نفسها التي أنشأت فيها قاعدة البيانات في وقت سابق.)
  • إنشاء تطبيق App Service إذا لم يكن موجوداً.
  • تمكين التسجيل الافتراضي للتطبيق، إذا لم يكن ممكّناً بالفعل.
  • حمِّل المستودع باستخدام توزيع ZIP مع تمكين أتمتة الإنشاء.

إنشاء شبكة فرعية لتطبيق الويب

قبل تمكين تكامل VNET، يجب أن يكون لديك شبكة فرعية تم تفويضها لتطبيق App Service Web App. قبل إنشاء الشبكة الفرعية، اعرض عنوان الشبكة الفرعية لقاعدة البيانات لتجنب استخدام نفس بادئة العنوان للشبكة الفرعية لتطبيق الويب.

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

قم بتشغيل الأمر التالي لإنشاء شبكة فرعية جديدة في نفس الشبكة الظاهرية مثل إنشاء مثيل خادم مرن لقاعدة بيانات Azure ل PostgreSQL. قم بتحديث بادئة العنوان لتجنب التعارض مع الشبكة الفرعية لخادم 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

أضف تطبيق الويب إلى الشبكة الظاهرية

استخدم الأمر az webapp vnet-Integration لإضافة تكامل شبكة افتراضية إقليمية إلى تطبيق ويب.

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

تكوين متغيرات البيئة لتوصيل قاعدة البيانات

مع نشر التعليمات البرمجية الآن في App Service، فإن الخطوة التالية هي توصيل التطبيق بمثيل خادم Azure Database for PostgreSQL المرن في Azure. يتوقع رمز التطبيق العثور على معلومات قاعدة البيانات في عدد من متغيرات البيئة. لتعيين متغيرات البيئة في App Service، استخدم الأمر 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>" 
  • استبدل postgres-server-name,username,password لأمر مثيل الخادم المرن ل Azure Database for PostgreSQL الذي تم إنشاؤه حديثا.
  • استبدل <اسم المستخدم> و<كلمة المرور> بمعلومات تسجيل الدخول التي أنشأها الأمر لك أيضاً.
  • تُحدد أسماء مجموعة الموارد والتطبيقات من القيم المخزنة مؤقتاً في ملف .azure/config.
  • يقوم الأمر بإنشاء إعدادات باسم DBHOSTو DBNAMEو DBUSER* وDBPASS. إذا كان رمز التطبيق الخاص بك يستخدم اسماً مختلفاً لمعلومات قاعدة البيانات، فاستخدم هذه الأسماء لإعدادات التطبيق كما هو مذكور في التعليمة البرمجية.

تكوين تطبيق الويب للسماح لجميع الاتصالات الصادرة من داخل الشبكة الظاهرية.

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

تنظيف الموارد

تنظيف جميع الموارد التي أنشأتها في البرنامج التعليمي باستخدام الأمر التالي. يحذف هذا الأمر جميع الموارد في مجموعة الموارد هذه.

az group delete -n demoresourcegroup

الخطوات التالية