إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح لك هذه المقالة كيفية إنشاء تطبيق ويب لخدمة تطبيقات Azure باستخدام خادم مرن لقاعدة بيانات Azure لشبكة PostgreSQL داخل شبكة افتراضية.
في هذه المقالة، ستتعرف على كيفية:
- إنشاء مثيل خادم مرن لقاعدة بيانات Azure ل PostgreSQL في شبكة ظاهرية
- أنشئ تطبيق ويب
- إضافة تطبيق الويب إلى الشبكة الظاهرية
- الاتصال بقاعدة بيانات Azure لخادم PostgreSQL المرن من تطبيق الويب
المتطلبات الأساسية
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
قم بتثبيت Azure CLI الإصدار 2.0 أو أحدث محليا (أو استخدم Azure Cloud Shell، الذي يحتوي على CLI مثبت مسبقا). لمشاهدة الإصدار المثبت، قم بتشغيل الأمر
az --version.سجل الدخول إلى حسابك باستخدام الأمر az login. لاحظ خاصية id من إخراج الأمر لاسم الاشتراك المقابل.
az loginإذا كان لديك عدة اشتراكات، اختر الاشتراك المناسب لفوترة المورد. اختر معرف الاشتراك المحدد تحت حسابك باستخدام أمر تعيين حساب az .
az account set --subscription <subscription ID>
إنشاء مثيل خادم مرن
إنشاء قاعدة بيانات Azure خاصة لنسخة خادم مرنة من PostgreSQL داخل شبكة افتراضية باستخدام الأمر التالي:
az postgres flexible-server create --resource-group demoresourcegroup --name demoserverpostgres --vnet demoappvnet --location westus2
يقوم هذا الأمر بتنفيذ الإجراءات التالية، والتي قد تستغرق بضع دقائق:
- ينشئ مجموعة الموارد إذا لم تكن موجودة بالفعل.
- يولد اسم خادم إذا لم توفر واحدا.
- إنشاء شبكة ظاهرية وشبكة فرعية لمثيل خادم مرن لقاعدة بيانات Azure ل PostgreSQL.
- ينشئ اسم المستخدم وكلمة المرور للمسؤول لسيرفرك إذا لم توفر لهم.
- ينشئ قاعدة بيانات فارغة تسمى postgres.
فيما يلي عينة الإخراج.
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"
}
أنشئ تطبيق ويب
في هذا القسم، تقوم بإنشاء مضيف تطبيق في تطبيق خدمة التطبيقات، ثم توصل هذا التطبيق بقاعدة بيانات Azure لقاعدة بيانات الخوادم المرنة PostgreSQL، ثم تنشر كودك على ذلك المضيف. تأكد من أنك في جذر المستودع للتعليمة البرمجية الخاصة بتطبيقك في الجهاز. الخطة الأساسية لا تدعم تكامل الشبكة الافتراضية. استخدم Standard أو Premium.
أنشئ تطبيق خدمة التطبيقات (عملية المضيف) باستخدام az webapp up الأمر.
az webapp up --resource-group demoresourcegroup --location westus2 --plan testappserviceplan --sku P2V2 --name mywebapp
إشعار
- بالنسبة ل
_--location_ argument، استخدم نفس الموقع الذي استخدمته لقاعدة البيانات في القسم السابق. - استبدلها
<app-name>باسم فريد عبر جميع أنحاء Azure. الأحرف المسموح بها ل<app-name>هي من A إلى Z، 0-9، و -. النمط الجيد هو استخدام مزيج من اسم شركتك ومعرف التطبيق.
يقوم هذا الأمر بتنفيذ الإجراءات التالية، والتي قد تستغرق بضع دقائق:
- ينشئ مجموعة الموارد إذا لم تكن موجودة بالفعل. (في هذا الأمر، تستخدم نفس مجموعة الموارد التي أنشأت فيها قاعدة البيانات سابقا.)
- ينشئ تطبيق خدمة التطبيقات إذا لم يكن موجودا.
- يفعل تسجيل السجل الافتراضي للتطبيق، إذا لم يكن مفعلا بالفعل.
- يرفع المستودع باستخدام نشر ZIP مع تفعيل أتمتة البناء.
إنشاء شبكة فرعية لتطبيق الويب
قبل تمكين تكامل الشبكة الافتراضية، تحتاج إلى شبكة فرعية مخولة إلى App Service Web App. قبل إنشاء الشبكة الفرعية، عرض عنوان شبكة قاعدة البيانات الفرعية لتجنب استخدام نفس بادئة العنوان لشبكة تطبيقات الويب.
az network vnet show --resource-group demoresourcegroup -n demoappvnet
شغل الأمر التالي لإنشاء شبكة فرعية جديدة في نفس الشبكة الافتراضية التي تضم قاعدة بيانات Azure لمثيل الخادم المرن PostgreSQL. قم بتحديث بادئة العنوان لتجنب التعارض مع شبكة الخادم المرنة لقاعدة بيانات Azure ل 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 لمثيل الخادم المرن 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، واسم المستخدم، وكلمة المرور بالقيم الخاصة بقاعدة بيانات Azure الجديدة التي تم إنشاؤها لنسخة الخادم المرن 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