توزيع تطبيق ويب Python (Django أو Flask) باستخدام PostgreSQL في Azure
في هذا البرنامج التعليمي، ستقوم بنشر تطبيق ويب Python يستند إلى البيانات (Django أو Flask) إلى Azure App Service مع قاعدة بيانات Azure لخدمة قاعدة بيانات PostgreSQL الارتباطية. تدعم Azure App Service Python في بيئة خادم Linux.
لإكمال هذا البرنامج التعليمي، ستحتاج إلى:
- حساب Azure مع اشتراك نشط. إذا لم يكن لديك حساب Azure، يمكنك إنشاء حساب مجانا.
- مَعرفة Python مع تطوير Flask أو Python مع تطوير Django
- حساب Azure مع اشتراك نشط. إذا لم يكن لديك حساب Azure، يمكنك إنشاء حساب مجانا.
- تم تثبيت Azure Developer CLI . يمكنك اتباع الخطوات باستخدام Azure Cloud Shell لأنه يحتوي بالفعل على Azure Developer CLI مثبت.
- مَعرفة Python مع تطوير Flask أو Python مع تطوير Django
تخطي إلى النهاية
مع تثبيت Azure Developer CLI ، يمكنك نشر نموذج تطبيق مكون بالكامل يظهر في هذا البرنامج التعليمي ورؤيتها قيد التشغيل في Azure. ما عليك سوى تشغيل الأوامر التالية في دليل عمل فارغ:
azd auth login
azd init --template msdocs-flask-postgresql-sample-app
azd up
عينات التطبيقات
يتم توفير نماذج تطبيقات Python باستخدام إطار عمل Flask و Django لمُساعدتك على المتابعة مع هذا البرنامج التعليمي. لنشرها دون تشغيلها محليا، تخطي هذا الجزء.
لتشغيل التطبيق محليا، تأكد من تثبيت Python 3.7 أو أعلى وPostgreSQL محليا. ثم قم باستنساخ فرع مستودع العينة starter-no-infra
والتغيير إلى جذر المستودع.
git clone -b starter-no-infra https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app
cd msdocs-flask-postgresql-sample-app
إنشاء ملف .env باستخدام مَلف .env.sample كدليل. تعيين قيمة DBNAME
إلى اسم قاعدة بيانات موجودة في مثيل PostgreSQL المَحلي. قم بتعيين قيم DBHOST
و DBUSER
حسب DBPASS
الاقتضاء لمثيل PostgreSQL المَحلي.
DBNAME=<database name>
DBHOST=<database-hostname>
DBUSER=<db-user-name>
DBPASS=<db-password>
إنشاء بيئة ظـاهرية للتطبيق:
py -m venv .venv
.venv\scripts\activate
تثبيت تأمينات التشغيل:
pip install -r requirements.txt
تشغيل نموذج التطبيق مع الأوامر التالية:
# Run database migration
flask db upgrade
# Run the app at http://127.0.0.1:5000
flask run
1. إنشاء App Service وPostgreSQL
في هذه الخطوة، يمكنك إنشاء موارد Azure. تنشئ الخطوات المستخدمة في هذا البرنامج التعليمي مجموعة من الموارد الآمنة بشكل افتراضي التي تتضمن خدمة التطبيقات وقاعدة بيانات Azure ل PostgreSQL. بالنسبة لعملية الإنشاء، ستحدد:
- اسم تطبيق الويب. هو الاسم المستخدم كجزء من اسم DNS لتطبيق الويب الخاص بك في شكل
https://<app-name>.azurewebsites.net
. - المنطقة لتشغيل التطبيق فعلياً في العالم.
- مكدس الذاكرة المؤقتة لوقت التشغيل للتطبيق. إنه المكان الذي تحدد فيه إصدار Python لاستخدامه لتطبيقك.
- خطة الاستضافة للتطبيق. إنها طبقة الأسعار التي تتضمن مجموعة الميزات وسعة التحجيم لتطبيقك.
- مجموعة الموارد للتطبيق. تتيح لك مجموعة الموارد تجميع (في حاوية منطقية) جميع موارد Azure المطلوبة للتطبيق.
سجّل الدخول إلى مدخل Azure واتبع هذه الخطوات لإنشاء مورد Azure App Service.
الخطوة 1: في مدخل Microsoft Azure:
- أدخل "قاعدة بيانات تطبيق ويب" في شـريط البحث في أعلى مدخل Microsoft Azure.
- حدد العنصر المسمى تطبيق ويب + قاعدة بيانات ضمن عنوان Marketplace. يمكنك أيضا الانتقال إلى معالج الإنشاء مباشرة.
الخطوة 2: في صفحة إنشاء تطبيق ويب + قاعدة بيانات ، املأ النموذج كما يلي.
- مجموعة الموارد → حدد إنشاء جديد واستخدم اسم msdocs-python-postgres-tutorial.
- المنطقة → أي منطقة Azure قريبة منك.
- الاسم → msdocs-python-postgres-XYZ حيث XYZ هو أي ثلاثة أحرف عشوائية. يجب أن يكون هذا الاسم فريدا عبر Azure.
- مكدس وقت التشغيل → Python 3.10.
- قاعدة البيانات → PostgreSQL - يتم تحديد الخادم المرن بشكل افتراضي كمحرك قاعدة البيانات. يتم أيضا تعيين اسم الخادم واسم قاعدة البيانات بشكل افتراضي إلى القيم المناسبة.
- خطة الاستضافة → الأساسية. عندما تكون مستعداً، يمكنك التوسع إلى مستوى أسعار الإنتاج لاحقاً.
- حدد "Review + create".
- وبعد اكتمال عملية التحقق، حدد Create.
الخطوة 3: يستغرق النشر بضع دقائق لإكماله. بعد اكتمال التوزيع، حدد الزر انتقال إلى المورد. يتم نقلك مباشرة إلى تطبيق App Service، ولكن يتم إنشاء الموارد التالية:
- مجموعة الموارد → الحاوية لكافة الموارد التي تم إنشاؤها.
- خطة خدمة التطبيق → تحدد موارد الحساب لخدمة التطبيق. يتم إنشاء خطة Linux في الطبقة الأساسية.
- تمثل خدمة التطبيقات → تطبيقك وتعمل في خطة خدمة التطبيق.
- → الشبكة الظاهرية متكاملة مع تطبيق خدمة التطبيق وتعزل نسبة استخدام الشبكة الخلفية.
- قاعدة بيانات Azure لخادم PostgreSQL المرن → يمكن الوصول إليه فقط من داخل الشبكة الظاهرية. يتم إنشاء قاعدة بيانات ومستخدم لك على الخادم.
- تمكن منطقة DNS الخاصة → دقة DNS لخادم PostgreSQL في الشبكة الظاهرية.
2. التحقق من إعدادات الاتصال
أنشأ معالج الإنشاء متغيرات الاتصال لك بالفعل كإعدادات التطبيق. تعد إعدادات التطبيق إحدى الطرق للحفاظ على أسرار الاتصال خارج مستودع التعليمات البرمجية. عندما تكون مستعدا لنقل بياناتك السرية إلى موقع أكثر أمانا، إليك مقالة حول التخزين في Azure Key Vault.
الخطوة 1: في صفحة App Service، في القائمة اليسرى، حدد Configuration.
الخطوة 2: في علامة التبويب إعدادات التطبيق في صفحة التكوين ، تحقق من وجودها AZURE_POSTGRESQL_CONNECTIONSTRING
. سيتم إدخال ذلك في بيئة وقت التشغيل كمتغير بيئة.
الخطوة 3: في محطة طرفية أو موجه أوامر، قم بتشغيل البرنامج النصي Python التالي لإنشاء سر فريد: python -c 'import secrets; print(secrets.token_hex())'
. انسخ قيمة الإخراج لاستخدامها في الخطوة التالية.
3 - توزيع عينة التعليمات البرمجية
في هذه الخطوة، ستقوم بتكوين توزيع GitHub باستخدام GitHub. إنها مجرد واحدة من العديد من الطرق للتوزيع في خدمة التطبيق، ولكنها أيضا طريقة رائعة للحصول على تكامل مستمر في عملية التوزيع الخاصة بك. بشكل افتراضي، git push
كل إلى مستودع GitHub الخاص بك سيبدأ إجراء الإنشاء والتوزيع.
الخطوة 1: في نافذة مستعرض جديدة:
- قم بتسجيل الدخول إلى حساب GitHub الخاص بك.
- الانتقال إلى https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app.
- حدد تفريع:
- حدد Create fork.
الخطوة 2: في صفحة GitHub، افتح Visual Studio Code في المتصفح بالضغط على .
المفتاح.
الخطوة 3: في Visual Studio Code في المستعرض، افتح azureproject/production.py في المستكشف. راجع متغيرات البيئة المستخدمة في بيئة الإنتاج، بما في ذلك إعدادات التطبيق التي شاهدتها في صفحة التكوين.
الخطوة 4: مرة أخرى في صفحة App Service، في القائمة اليسرى، حدد Deployment Center.
الخطوة 5: في صفحة Deployment Center:
- في المصدر، حدد GitHub. بشكل افتراضي، يتم تحديد إجراءات GitHub كموفر بناء.
- سجل الدخول إلى حساب GitHub واتبع المطالبة لتخويل Azure.
- في المؤسسة، حدد حسابك.
- في Repository، حدد msdocs-flask-postgresql-sample-app.
- في الفرع، حدد رئيسي.
- احتفظ بالخيار الافتراضي محددا لإضافة سير عمل.
- ضمن Authentication type، حدد User-assigned identity.
- في القائمة العلوية، حدد حفظ. تلتزم App Service بملف سير عمل في مستودع GitHub المختار، في الدليل
.github/workflows
.
الخطوة 6: في صفحة Deployment Center:
- حدد "Logs". تم بالفعل بدء تشغيل التوزيع.
- في عنصر السجل لتشغيل التوزيع حدد سجلات التوزيع/البناء.
الخطوة 7: يتم نقلك إلى مستودع GitHub الخاص بك وترى أن إجراء GitHub قيد التشغيل. يحدد ملف سير العمل مرحلتين منفصلتين، الإنشاء والتوزيع. انتظر حتى يتم تشغيل GitHub لإظهار حالة مكتمل. يستغرق حوالي 5 دقائق.
هل تواجه مشكلات؟ تحقق من دليل استكشاف الأخطاء وإصلاحها.
4. إنشاء مخطط قاعدة البيانات
باستخدام قاعدة بيانات PostgreSQL المحمية بالشبكة الظاهرية، فإن أسهل طريقة لتشغيل عمليات ترحيل قاعدة بيانات Flask هي في جلسة SSH مع حاوية App Service.
الخطوة 1: العودة إلى صفحة App Service، في القائمة اليسرى،
- حدد SSH .
- حدد Go.
الخطوة 2: في محطة SSH الطرفية، قم بتشغيل flask db upgrade
. إذا نجحت، فإن App Service تتصل بنجاح بقاعدة البيانات.
يمكن أن تستمر التغييرات التي يتم إجراؤها على الملفات في /home
فقط بعد عمليات إعادة تشغيل التطبيق. التغييرات خارج /home
غير مستمرة.
5. استعرض للوصول إلى التطبيق
الخطوة 1: في صفحة App Service:
- من القائمة اليسرى، حدد نظرة عامة.
- حدد عنوان URL لتطبيقك. يمكنك أيضًا الانتقال مباشرة إلى
https://<app-name>.azurewebsites.net
.
الخطوة 2: إضافة بعض المطاعم إلى القائمة. تهانينا، أنت تقوم بتشغيل تطبيق ويب في Azure App Service، مع اتصال آمن بقاعدة بيانات Azure ل PostgreSQL.
6. دفق سجلات التشخيص
تلتقط Azure App Service جميع مُخرجات الرسائل إلى وحدة التحكم لمساعدتك في تشخيص المشكلات مع التطبيق الخاص بك. يتضمن print()
نموذج التطبيق عبارات لتوضيح هذه الإمكانية كما هو مُوضح أدناه.
@app.route('/', methods=['GET'])
def index():
print('Request for index page received')
restaurants = Restaurant.query.all()
return render_template('index.html', restaurants=restaurants)
الخطوة 1: في صفحة App Service:
- من القائمة اليسرى، حدد تسجيلات خدمة التطبيق.
- ضمن سجل التطبيقات، حدد نظام الملفات.
- في القائمة العلوية، حدد حفظ.
الخطوة 2: من القائمة اليسرى، حدد Log stream. ترى سجلات تطبيقك، بما في ذلك سجلات النظام الأساسي والسجلات من داخل الحاوية.
تعرف على المزيد حول تسجيل الدخول إلى تطبيقات Python في سلسلة إعداد Azure Monitor لتطبيق Python الخاص بك.
7. تنظيف الموارد
عند الانتهاء، يمكنك حذف جميع الموارد من اشتراك Azure الخاص بك عن طريق حذف مجموعة الموارد.
الخطوة 1: في شريط البحث أعلى مدخل Microsoft Azure:
- أدخل اسم مجموعة الموارد.
- حدد مجموعة الموارد.
الخطوة 2: في صفحة مجموعة الموارد، حدد حذف مجموعة الموارد.
الخطوة 3:
- أدخل اسم مجموعة الموارد لتأكيد حذفك.
- حدد حذف.
1. إنشاء موارد Azure ونشر نموذج تطبيق
في هذه الخطوة، يمكنك إنشاء موارد Azure ونشر نموذج تطبيق إلى App Service على Linux. تنشئ الخطوات المستخدمة في هذا البرنامج التعليمي مجموعة من الموارد الآمنة بشكل افتراضي التي تتضمن خدمة التطبيقات وقاعدة بيانات Azure ل PostgreSQL.
إذا لم تكن قد قمت بالفعل، فانسخ فرع مستودع العينة
starter-no-infra
في محطة طرفية محلية.git clone -b starter-no-infra https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app cd msdocs-flask-postgresql-sample-app
هذا الفرع المستنسخ هو نقطة البداية الخاصة بك. يحتوي على تطبيق Flask بسيط لمحرك البيانات.
من جذر المستودع، قم بتشغيل
azd init
.azd init --template python-app-service-postgresql-infra
عند المطالبة، قدم الإجابات التالية:
السؤال الإجابة الدليل الحالي غير فارغ. هل ترغب في تهيئة مشروع هنا في "<دليلك>"؟ السنة ماذا تريد أن تفعل بهذه الملفات؟ الاحتفاظ بالملفات الموجودة دون تغيير أدخل اسم بيئة جديدة اكتب اسم فريد. يستخدم قالب azd هذا الاسم كجزء من اسم DNS لتطبيق الويب الخاص بك في Azure ( <app-name>.azurewebsites.net
). يسمح بالأحرف الأبجدية الرقمية والواصلات.azd up
قم بتشغيل الأمر لتوفير موارد Azure الضرورية ونشر التعليمات البرمجية للتطبيق. إذا لم تكن قد سجلت الدخول بالفعل إلى Azure، تشغيل المستعرض ويطلب منك تسجيل الدخول.azd up
سيطالبك الأمر أيضا بتحديد الاشتراك والموقع المطلوبين للنشر فيه.azd up
azd up
قد يستغرق الأمر بضع دقائق لإكماله. كما أنه يقوم بتجميع ونشر التعليمات البرمجية للتطبيق الخاص بك، ولكنك ستقوم بتعديل التعليمات البرمجية الخاصة بك لاحقا للعمل مع App Service. أثناء تشغيله، يوفر الأمر رسائل حول عملية التوفير والنشر، بما في ذلك ارتباط إلى النشر في Azure. عند الانتهاء، يعرض الأمر أيضا ارتباطا إلى تطبيق التوزيع.يحتوي قالب azd هذا على ملفات (azure.yaml ودليل infra ) التي تنشئ بنية آمنة بشكل افتراضي مع موارد Azure التالية:
- مجموعة الموارد → الحاوية لكافة الموارد التي تم إنشاؤها.
- خطة خدمة التطبيق → تحدد موارد الحساب لخدمة التطبيق. يتم تحديد خطة Linux في المستوى B1 .
- تمثل خدمة التطبيقات → تطبيقك وتعمل في خطة خدمة التطبيق.
- → الشبكة الظاهرية متكاملة مع تطبيق خدمة التطبيق وتعزل نسبة استخدام الشبكة الخلفية.
- قاعدة بيانات Azure لخادم PostgreSQL المرن → يمكن الوصول إليه فقط من داخل الشبكة الظاهرية. يتم إنشاء قاعدة بيانات ومستخدم لك على الخادم.
- تمكن منطقة DNS الخاصة → دقة DNS لخادم PostgreSQL في الشبكة الظاهرية.
- تعمل مساحة عمل Log Analytics → كحاوية مستهدفة لتطبيقك لشحن سجلاته، حيث يمكنك أيضا الاستعلام عن السجلات.
2. استخدام قاعدة البيانات سلسلة الاتصال
قام قالب azd الذي تستخدمه بإنشاء متغيرات الاتصال لك بالفعل كإعدادات تطبيق وإخراجها إلى المحطة الطرفية لراحتك. تعد إعدادات التطبيق إحدى الطرق للحفاظ على أسرار الاتصال خارج مستودع التعليمات البرمجية.
في إخراج azd، ابحث عن إعدادات التطبيق وابحث عن الإعدادات
AZURE_POSTGRESQL_CONNECTIONSTRING
وAZURE_REDIS_CONNECTIONSTRING
. للحفاظ على البيانات السرية آمنة، يتم عرض أسماء الإعدادات فقط. تبدو مثل هذه في إخراج azd:App Service app has the following settings: - AZURE_POSTGRESQL_CONNECTIONSTRING - AZURE_REDIS_CONNECTIONSTRING - FLASK_DEBUG - SCM_DO_BUILD_DURING_DEPLOYMENT - SECRET_KEY
AZURE_POSTGRESQL_CONNECTIONSTRING
يحتوي على سلسلة الاتصال إلى قاعدة بيانات Postgres في Azure،AZURE_REDIS_CONNECTIONSTRING
ويحتوي على سلسلة الاتصال إلى ذاكرة التخزين المؤقت Redis في Azure. تحتاج إلى استخدامها التعليمات البرمجية الخاصة بك للاتصال بها. افتح azureproject/production.py، وألغ التعليق على الأسطر التالية، واحفظ الملف:conn_str = os.environ['AZURE_POSTGRESQL_CONNECTIONSTRING'] conn_str_params = {pair.split('=')[0]: pair.split('=')[1] for pair in conn_str.split(' ')} DATABASE_URI = 'postgresql+psycopg2://{dbuser}:{dbpass}@{dbhost}/{dbname}'.format( dbuser=conn_str_params['user'], dbpass=conn_str_params['password'], dbhost=conn_str_params['host'], dbname=conn_str_params['dbname'] )
تم تكوين التعليمات البرمجية للتطبيق الخاص بك الآن للاتصال بقاعدة بيانات PostgreSQL في Azure. إذا أردت، افتح
app.py
وشاهد كيفيةDATABASE_URI
استخدام متغير البيئة.في المحطة الطرفية، قم بتشغيل
azd deploy
.azd deploy
4. إنشاء مخطط قاعدة البيانات
باستخدام قاعدة بيانات PostgreSQL المحمية بالشبكة الظاهرية، فإن أسهل طريقة لتشغيل عمليات ترحيل قاعدة بيانات Flask هي في جلسة SSH مع حاوية App Service.
في إخراج azd، ابحث عن عنوان URL لجلسة SSH وانتقل إليه في المتصفح. يبدو مثل هذا في الإخراج:
Open SSH session to App Service container at: https://<app-name>.scm.azurewebsites.net/webssh/host
في محطة SSH الطرفية، قم بتشغيل
flask db upgrade
. إذا نجحت، فإن App Service تتصل بنجاح بقاعدة البيانات.إشعار
يمكن أن تستمر التغييرات التي يتم إجراؤها على الملفات في
/home
فقط بعد عمليات إعادة تشغيل التطبيق. التغييرات خارج/home
غير مستمرة.
5. استعرض للوصول إلى التطبيق
في إخراج azd، ابحث عن عنوان URL لتطبيقك وانتقل إليه في المستعرض. يبدو عنوان URL كما يلي في إخراج AZD:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: https://<app-name>.azurewebsites.net/
أضف بعض المطاعم إلى القائمة.
تهانينا، أنت تقوم بتشغيل تطبيق ويب في Azure App Service، مع اتصال آمن بقاعدة بيانات Azure ل PostgreSQL.
6. دفق سجلات التشخيص
يمكن ل Azure App Service التقاط سجلات وحدة التحكم لمساعدتك في تشخيص المشكلات مع التطبيق الخاص بك. للراحة، قام قالب azd بالفعل بتمكين التسجيل إلى نظام الملفات المحلي بالإضافة إلى شحنها إلى مساحة عمل Log Analytics.
يتضمن print()
نموذج التطبيق عبارات لإثبات هذه الإمكانية كما هو موضح في القصاصة البرمجية التالية.
@app.route('/', methods=['GET'])
def index():
print('Request for index page received')
restaurants = Restaurant.query.all()
return render_template('index.html', restaurants=restaurants)
في إخراج azd، ابحث عن الارتباط لدفق سجلات App Service وانتقل إليه في المتصفح. يبدو الارتباط كما يلي في إخراج azd:
Stream App Service logs at: https://portal.azure.com/#@/resource/subscriptions/<subscription-guid>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name>/logStream
تعرف على المزيد حول تسجيل الدخول إلى تطبيقات Python في سلسلة إعداد Azure Monitor لتطبيق Python الخاص بك.
7. تنظيف الموارد
لحذف كافة موارد Azure في بيئة النشر الحالية، قم بتشغيل azd down
.
azd down
استكشاف الأخطاء وإصلاحها
فيما يلي المشكلات التي قد تواجهها أثناء محاولة العمل من خلال هذا البرنامج التعليمي والخطوات لحلها.
لا يمكنني الاتصال بجلسة SSH
إذا لم تتمكن من الاتصال بجلسة SSH، فقد فشل التطبيق نفسه في البدء. تحقق من سجلات التشخيص للحصول على التفاصيل. على سبيل المثال، إذا رأيت خطأ مثل KeyError: 'AZURE_POSTGRESQL_CONNECTIONSTRING'
، فقد يعني ذلك أن متغير البيئة مفقود (ربما قمت بإزالة إعداد التطبيق).
أتلقى خطأ عند تشغيل عمليات ترحيل قاعدة البيانات
إذا واجهت أي أخطاء تتعلق بالاتصال بقاعدة البيانات، فتحقق مما إذا تم تغيير إعدادات التطبيق (AZURE_POSTGRESQL_CONNECTIONSTRING
). بدون هذا سلسلة الاتصال، لا يمكن لأمر الترحيل الاتصال بقاعدة البيانات.
الأسئلة الشائعة
- كم يكلف هذا الإعداد؟
- كيف أعمل الاتصال بخادم PostgreSQL المؤمن خلف الشبكة الظاهرية باستخدام أدوات أخرى؟
- كيف يعمل تطوير التطبيقات المحلية مع إجراءات GitHub؟
- كيف تم تكوين نموذج Django لتشغيله على Azure App Service؟
كم يكلف هذا الإعداد؟
تسعير الموارد التي تم إنشاؤها كما يلي:
- يتم إنشاء خطة App Service في الطبقة الأساسية، ويمكن تغيير حجمها زيادة أو نقصانًا. راجع تسعير App Service.
- يتم إنشاء خادم PostgreSQL المرن في أدنى مستوى قابل للاندفاع Standard_B1ms، مع الحد الأدنى لحجم التخزين، والذي يمكن توسيع نطاقه لأعلى أو لأسفل. راجع قاعدة بيانات Azure لمعرفة أسعار PostgreSQL.
- لا تتحمل الشبكة الظاهرية رسوما ما لم تقم بتكوين وظائف إضافية، مثل التناظر. راجع أسعار شبكة Azure الظاهرية.
- تتحمل منطقة DNS الخاصة رسوما صغيرة. راجع أسعار Azure DNS.
كيف أعمل الاتصال بخادم PostgreSQL المؤمن خلف الشبكة الظاهرية باستخدام أدوات أخرى؟
- للوصول الأساسي من أداة سطر الأوامر، يمكنك التشغيل
psql
من وحدة SSH الطرفية للتطبيق. - للاتصال من أداة سطح المكتب، يجب أن يكون جهازك داخل الشبكة الظاهرية. على سبيل المثال، قد يكون جهاز Azure ظاهري متصل بإحدى الشبكات الفرعية، أو جهازا في شبكة محلية لديه اتصال VPN من موقع إلى موقع مع شبكة Azure الظاهرية.
- يمكنك أيضا دمج Azure Cloud Shell مع الشبكة الظاهرية.
كيف يعمل تطوير التطبيقات المحلية مع إجراءات GitHub؟
باستخدام ملف سير العمل الذي تم إنشاؤه تلقائيا من App Service كمثال، يقوم كل git push
منها ببدء تشغيل بنية ونشر جديد. من نسخة محلية من مستودع GitHub، يمكنك إجراء التحديثات المطلوبة ودفعها إلى GitHub. على سبيل المثال:
git add .
git commit -m "<some-message>"
git push origin main
كيف تم تكوين نموذج Django لتشغيله على Azure App Service؟
إشعار
إذا كنت تتابع هذا البرنامج التعليمي مع تطبيقك الخاص، فانظر إلى وصف ملف requirements.txt في ملف README.md لكل مشروع (Flask، Django) لمعرفة الحزم التي سوف تحتاجها.
يقوم نموذج تطبيق Django بتكوين الإعدادات في ملف azureproject/production.py بحيث يمكن تشغيله في Azure App Service. هذه التغييرات شائعة لنشر Django في الإنتاج، وليست خاصة بخدمة التطبيقات.
يتحقق Django من صحة عنوان HTTP_HOST في الطلبات الواردة. يستخدم نموذج التعليمات البرمجية
WEBSITE_HOSTNAME
متغير البيئة في App Service لإضافة اسم مجال التطبيق إلى إعداد ALLOWED_HOSTS Django.# Configure the domain name using the environment variable # that Azure automatically creates for us. ALLOWED_HOSTS = [os.environ['WEBSITE_HOSTNAME']] if 'WEBSITE_HOSTNAME' in os.environ else []
لا يدعم Django خدمة الملفات الثابتة في الإنتاج. لهذا البرنامج التعليمي، يمكنك استخدام WhiteNoise لتمكين خدمة الملفات. تم تثبيت حزمة WhiteNoise بالفعل مع requirements.txt، ويتم إضافة برنامجها الوسيط إلى القائمة.
# WhiteNoise configuration MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', # Add whitenoise middleware after the security middleware 'whitenoise.middleware.WhiteNoiseMiddleware',
ثم يتم تكوين إعدادات الملف الثابت وفقا لوثائق Django.
SESSION_ENGINE = "django.contrib.sessions.backends.cache" STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
لمزيد من المعلومات، راجع إعدادات الإنتاج لتطبيقات Django.
الخطوات التالية
تقدم إلى البرنامج التعليمي التالي لمعرفة كيفية تأمين تطبيقك باستخدام مجال وشهادة مخصصين.
تعرف على كيفية تشغيل خدمة التطبيقات لتطبيق Python: