ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يوضح هذا البرنامج التعليمي كيفية إنشاء تطبيق PHP آمن في Azure App Service يتصل بقاعدة بيانات MySQL (باستخدام قاعدة بيانات Azure لخادم MySQL المرن). ستقوم أيضا بنشر ذاكرة التخزين المؤقت Azure ل Redis لتمكين التعليمات البرمجية للتخزين المؤقت في التطبيق الخاص بك. Azure App Service هي خدمة استضافة ويب قابلة للتطوير بدرجة كبيرة وتصحيح ذاتي يمكنها نشر التطبيقات بسهولة على Windows أو Linux. عند الانتهاء، سيكون لديك تطبيق Laravel يعمل على Azure App Service في Linux.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. إذا لم يكن لديك حساب Azure، يمكنك إنشاء حساب مجانا.
- حساب GitHub. يمكنك أيضا الحصول على واحد مجانا.
- معرفة PHP مع تطوير Laravel.
- (اختياري) لتجربة GitHub Copilot، حساب GitHub Copilot. يتوفر إصدار تجريبي مجاني لمدة 30 يوما.
1 - تشغيل العينة
أولا، يمكنك إعداد نموذج تطبيق يستند إلى البيانات كنقطة بداية. لراحتك، يتضمن مستودع العينة تكوين حاوية التطوير. تحتوي حاوية التطوير على كل ما تحتاجه لتطوير تطبيق، بما في ذلك قاعدة البيانات وذاكرة التخزين المؤقت وجميع متغيرات البيئة التي يحتاجها نموذج التطبيق. يمكن تشغيل حاوية التطوير في مساحة التعليمات البرمجية GitHub، ما يعني أنه يمكنك تشغيل العينة على أي كمبيوتر باستخدام مستعرض ويب.
الخطوة 1: في نافذة مستعرض جديدة:
- قم بتسجيل الدخول إلى حساب GitHub الخاص بك.
- الانتقال إلى https://github.com/Azure-Samples/laravel-tasks/fork.
- حدد Create fork.
الخطوة 2: في نسخة GitHub:
- حدد Code>Create codespace on main.
تستغرق مساحة التعليمات البرمجية بضع دقائق لإعدادها. أيضا، يحتوي ملف .env المتوفر بالفعل على متغير وهمي
APP_KEY
يحتاج Laravel إلى تشغيله محليا.
الخطوة 3: في الوحدة الطرفية لمساحة التعليمات البرمجية:
- شغّل
composer install
. - تشغيل عمليات ترحيل قاعدة البيانات باستخدام
php artisan migrate
. - شغّل التطبيق باستخدام
php artisan serve
. - عندما ترى الإعلام
Your application running on port 80 is available.
، حدد فتح في المستعرض. يجب أن تشاهد نموذج التطبيق في علامة تبويب مستعرض جديدة. لإيقاف التطبيق، اكتبCtrl
+C
.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
2 - إنشاء خدمة التطبيقات وقاعدة البيانات وذاكرة التخزين المؤقت
في هذه الخطوة، يمكنك إنشاء موارد Azure. تنشئ الخطوات المستخدمة في هذا البرنامج التعليمي مجموعة من الموارد الآمنة افتراضيا التي تتضمن خدمة التطبيقات وقاعدة بيانات Azure ل MySQL وذاكرة التخزين المؤقت Azure ل Redis. بالنسبة لعملية الإنشاء، يمكنك تحديد:
- اسم تطبيق الويب. يتم استخدامه كجزء من اسم DNS لتطبيقك.
- المنطقة لتشغيل التطبيق فعلياً في العالم. كما يتم استخدامه كجزء من اسم DNS لتطبيقك.
- مكدس الذاكرة المؤقتة لوقت التشغيل للتطبيق. إنه المكان الذي تحدد فيه إصدار PHP لاستخدامه لتطبيقك.
- خطة الاستضافة للتطبيق. إنها طبقة الأسعار التي تتضمن مجموعة الميزات وسعة التحجيم لتطبيقك.
- مجموعة الموارد للتطبيق. تتيح لك مجموعة الموارد تجميع (في حاوية منطقية) جميع موارد Azure المطلوبة للتطبيق.
سجّل الدخول إلى مدخل Azure واتبع هذه الخطوات لإنشاء مورد Azure App Service.
الخطوة 1: في مدخل Microsoft Azure:
- في شريط البحث العلوي، اكتب app service.
- حدد العنصر المسمى App Service ضمن عنوان Services .
- حدد إنشاء>تطبيق ويب. يمكنك أيضا الانتقال إلى معالج الإنشاء مباشرة.
الخطوة 2: في صفحة إنشاء تطبيق ويب، املأ النموذج كما يلي.
- الاسم: msdocs-laravel-mysql-XYZ. سيتم إنشاء مجموعة موارد باسم msdocs-laravel-mysql-XYZ_group لك.
- مكدس وقت التشغيل: PHP 8.4.
- نظام التشغيل: Linux.
- المنطقة: أي منطقة Azure قريبة منك.
- خطة Linux: إنشاء جديد واستخدام اسم msdocs-laravel-mysql-XYZ.
- خطة التسعير: أساسية. عندما تكون مستعدا، يمكنك التوسع إلى مستوى تسعير مختلف.
الخطوة 3:
- حدد علامة التبويب قاعدة البيانات .
- حدد إنشاء قاعدة بيانات.
- في Engine، حدد MySQL - Flexible Server.
- حدد Create an Azure Cache for Redis.
- في الاسم (ضمن ذاكرة التخزين المؤقت)، أدخل اسما لذاكرة التخزين المؤقت.
- في SKU، حدد Basic.
الخطوة 4:
- حدد علامة التبويب Deployment .
- تمكين النشر المستمر.
- في المؤسسة، حدد الاسم المستعار GitHub الخاص بك.
- في المستودع، حدد laravel-tasks.
- في الفرع، حدد رئيسي.
- تأكد من تعطيل المصادقة الأساسية .
- حدد "Review + create".
- وبعد اكتمال عملية التحقق، حدد Create.
الخطوة 5: يستغرق النشر بضع دقائق حتى يكتمل. بعد اكتمال التوزيع، حدد الزر انتقال إلى المورد. يتم نقلك مباشرة إلى تطبيق App Service، ولكن يتم إنشاء الموارد التالية:
- مجموعة الموارد: الحاوية لكافة الموارد التي تم إنشاؤها.
- خطة App Service: تحدد موارد الحوسبة ل App Service. يتم إنشاء خطة Linux في الطبقة الأساسية.
- App Service: تمثل تطبيقك وتعمل في خطة App Service.
- الشبكة الظاهرية: متكاملة مع تطبيق App Service وتعزل حركة مرور الشبكة الخلفية.
- نقاط النهاية الخاصة: الوصول إلى نقاط النهاية لخادم قاعدة البيانات وذاكرة التخزين المؤقت Redis في الشبكة الظاهرية.
- واجهات الشبكة: تمثل عناوين IP الخاصة، واحدة لكل نقطة من نقاط النهاية الخاصة.
- خادم Azure Database for MySQL المرن: يمكن الوصول إليه فقط من خلف نقطة النهاية الخاصة به. يتم إنشاء قاعدة بيانات ومستخدم لك على الخادم.
- ذاكرة التخزين المؤقت Azure ل Redis: يمكن الوصول إليها فقط من خلف نقطة النهاية الخاصة بها.
- مناطق DNS الخاصة: تمكين دقة DNS لخادم قاعدة البيانات وذاكرة التخزين المؤقت Redis في الشبكة الظاهرية.
3 - تأمين أسرار الاتصال
أنشأ معالج الإنشاء متغيرات الاتصال لك بالفعل كإعدادات التطبيق. ومع ذلك، فإن أفضل ممارسة أمنية هي الاحتفاظ بأسرار خارج App Service تماما. ستقوم بنقل أسرارك إلى مخزن مفاتيح وتغيير إعداد التطبيق إلى مراجع Key Vault بمساعدة موصلات الخدمة.
الخطوة 1: استرداد سلسلة الاتصال الموجودة
- في القائمة اليسرى من صفحة App Service، حدد Settings > Environment variables.
- حدد سلاسل الاتصال.
- حدد AZURE_MYSQL_CONNECTIONSTRING.
- في إعداد إضافة/تحرير التطبيق، في حقل القيمة ، انسخ اسم المستخدم وكلمة المرور لاستخدامها لاحقا. تتيح لك سلسلة الاتصال الاتصال بقاعدة بيانات MySQL المؤمنة خلف نقاط النهاية الخاصة. ومع ذلك، يتم حفظ الأسرار مباشرة في تطبيق App Service، وهو ليس الأفضل. ستغير هذا.
الخطوة 2: إنشاء مخزن رئيسي للإدارة الآمنة للبيانات السرية
- في شريط البحث العلوي، اكتب "key vault"، ثم حدد Marketplace>Key Vault.
- في Resource Group، حدد msdocs-laravel-mysql-XYZ_group.
- في اسم Key vault، اكتب اسما يتكون من أحرف وأرقام فقط.
- في Region، قم بتعيينه إلى نفس موقع مجموعة الموارد.
الخطوة 3: تأمين خزنة المفاتيح باستخدام نقطة نهاية خاصة
- حدد علامة التبويب Networking .
- إلغاء تحديد تمكين الوصول العام.
- حدد Create a private endpoint.
- في Resource Group، حدد msdocs-laravel-mysql-XYZ_group.
- في مربع الحوار، في الموقع، حدد نفس موقع تطبيق App Service.
- في Name، اكتب msdocs-laravel-mysql-XYZVaultEndpoint.
- في الشبكة الظاهرية، حدد الشبكة الظاهرية في مجموعة msdocs-laravel-mysql-XYZ_group .
- في الشبكة الفرعية، حدد الشبكة الفرعية المتوافقة المتوفرة. قام معالج Web App بإنشائه لراحتك.
- حدد موافق.
- حدد Review + create، ثم حدد Create. انتظر حتى ينتهي نشر مخزن المفاتيح. يجب أن ترى "اكتمل النشر الخاص بك. "
الخطوة 4: إنشاء موصل MySQL
- في شريط البحث العلوي، اكتب msdocs-laravel-mysql، ثم حدد مورد App Service المسمى msdocs-laravel-mysql-XYZ.
- في صفحة App Service، في القائمة اليمنى، حدد Settings > Service Connector.
- حدد إنشاء.
- بالنسبة إلى نوع الخدمة، حدد DB لخادم MySQL المرن.
- بالنسبة إلى خادم MySQL المرن، حدد الخادم الخاص بك (على سبيل المثال، msdocs-laravel-mysql-235-server).
- بالنسبة لقاعدة بيانات MySQL، حدد قاعدة البيانات الخاصة بك (على سبيل المثال، msdocs-laravel-mysql-235-database).
الخطوة 5: تكوين المصادقة لموصل MySQL
- حدد علامة التبويب مصادقة.
- حدد Connection string.
- في كلمة المرور، الصق كلمة المرور التي نسختها سابقا.
- حدد مخزن البيانات السرية في Key Vault.
- ضمن Key Vault Connection، حدد Create new. يتم فتح مربع حوار إنشاء اتصال أعلى مربع حوار التحرير.
الخطوة 6: إنشاء اتصال Key Vault
- في مربع الحوار Create connection لاتصال Key Vault، في Key Vault، حدد key vault الذي أنشأته سابقا.
- حدد "استعراض + إنشاء".
- عند اكتمال التحقق من الصحة، حدد إنشاء.
الخطوة 6: إنهاء إعدادات موصل MySQL
- لقد عدت إلى مربع حوار موصل MySQL. في علامة التبويب Authentication ، انتظر حتى يتم إنشاء موصل key vault. عند الانتهاء، تحددها القائمة المنسدلة اتصال Key Vault تلقائيا.
- حدد "استعراض + إنشاء".
- حدد إنشاء. انتظر حتى يظهر إعلام نجاح التحديث.
الخطوة 7: تكوين موصل Redis لاستخدام أسرار Key Vault
- في صفحة Service Connectors، حدد خانة الاختيار بجوار موصل Cache for Redis، ثم حدد Edit.
- حدد علامة التبويب مصادقة.
- حدد مخزن البيانات السرية في Key Vault.
- ضمن Key Vault Connection، حدد key vault الذي أنشأته.
- حدد Next: Networking.
- حدد تكوين قواعد جدار الحماية لتمكين الوصول إلى الخدمة المستهدفة. قام معالج إنشاء التطبيق بتأمين قاعدة بيانات SQL بالفعل بنقطة نهاية خاصة.
- حدد حفظ. انتظر حتى يظهر إعلام نجاح التحديث.
الخطوة 8: التحقق من تكامل Key Vault
- من القائمة اليسرى، حدد Settings > Environment variables مرة أخرى.
- بجوار AZURE_MYSQL_PASSWORD، حدد Show value. يجب أن تكون
@Microsoft.KeyVault(...)
القيمة ، ما يعني أنها مرجع خزنة مفاتيح لأن السر تتم إدارته الآن في مخزن المفاتيح. - للتحقق من سلسلة الاتصال Redis، حدد Show value بجوار AZURE_REDIS_CONNECTIONSTRING.
للتلخيص، تتضمن عملية تأمين أسرار الاتصال الخاصة بك ما يلي:
- استرداد أسرار الاتصال من متغيرات البيئة لتطبيق App Service.
- إنشاء مفتاح رئيسي.
- إنشاء اتصال Key Vault بالهوية المدارة المعينة من قبل النظام.
- تحديث موصلات الخدمة لتخزين الأسرار في مخزن المفاتيح.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
4 - تكوين متغيرات Laravel
الخطوة 1: إنشاء CACHE_DRIVER
كإعداد تطبيق.
- في علامة التبويب إعدادات التطبيق، حدد إضافة.
- في حقل الاسم ، أدخل CACHE_DRIVER.
- في حقل القيمة ، أدخل redis.
- حدد تطبيق، ثم تطبيق مرة أخرى، ثم تأكيد.
الخطوة 2: باستخدام نفس الخطوات في الخطوة 1، قم بإنشاء إعدادات التطبيق التالية:
- MYSQL_ATTR_SSL_CA: استخدم /home/site/wwwroot/ssl/DigiCertGlobalRootCA.crt.pem كقيمة. يشير إعداد التطبيق هذا إلى مسار شهادة TLS/SSL التي تحتاجها للوصول إلى خادم MySQL. يتم تضمينه في مستودع العينة للراحة.
- LOG_CHANNEL: استخدم stderr كقيمة. يخبر هذا الإعداد Laravel بتوجيه السجلات إلى stderr، ما يجعله متاحا لسجلات App Service.
- APP_DEBUG: استخدم صواب كقيمة. إنه متغير تصحيح الأخطاء Laravel الذي يمكن صفحات وضع التصحيح.
- APP_KEY: استخدم base64:Dsz40HWbCqnq0oxMsjq7fItmKIeBfCBGORfspaI1Kw= كقيمة. إنه متغير تشفير Laravel.
هام
APP_KEY
يتم استخدام القيمة هنا للراحة. بالنسبة لسيناريوهات الإنتاج، يجب إنشاؤه خصيصا للتوزيع الخاص بك باستخدام php artisan key:generate --show
في سطر الأوامر.
من الناحية المثالية APP_KEY
، يجب تكوين إعداد التطبيق كمرجع خزنة مفاتيح أيضا، وهي عملية متعددة الخطوات. لمزيد من المعلومات، راجع كيف يمكنني تغيير إعداد تطبيق APP_KEY إلى مرجع Key Vault؟
5 - نشر نموذج التعليمات البرمجية
في هذه الخطوة، يمكنك تكوين نشر GitHub باستخدام GitHub Actions. إنها مجرد واحدة من العديد من الطرق للتوزيع في خدمة التطبيق، ولكنها أيضا طريقة رائعة للحصول على تكامل مستمر في عملية التوزيع الخاصة بك. بشكل افتراضي، git push
كل إلى مستودع GitHub الخاص بك تبدأ إجراء الإنشاء والتوزيع.
الخطوة 1: مرة أخرى في مساحة التعليمات البرمجية GitHub من نسخة المستودع الخاصة بك، قم بتشغيل git pull origin main
.
يؤدي هذا إلى سحب ملف سير العمل الملتزم به حديثا إلى مساحة التعليمات البرمجية الخاصة بك.
الخطوة 2 (الخيار 1: مع GitHub Copilot):
- ابدأ جلسة دردشة جديدة عن طريق تحديد طريقة عرض الدردشة، ثم تحديد +.
- اسأل، "@workspace كيف يتصل التطبيق بقاعدة البيانات وredis؟" قد يمنحك Copilot بعض الشرح حول كيفية تكوين الإعدادات في التكوين/database.php.
- اسأل، "@workspace في وضع الإنتاج، يتم تشغيل تطبيقي في تطبيق ويب App Service، والذي يستخدم موصل خدمة Azure للاتصال بخادم MySQL مرن. ما هي أسماء متغيرات البيئة التي أحتاج إلى استخدامها؟" قد يمنحك Copilot اقتراحا للتعليمات البرمجية مشابها لاقتراح في الخيار 2: بدون خطوات GitHub Copilot أدناه وحتى إخبارك بإجراء التغيير في ملف التكوين/database.php .
- افتح التكوين/database.php في المستكشف وأضف اقتراح التعليمات البرمجية.
- اسأل، "@workspace يستخدم تطبيق خدمة التطبيقات الخاص بي أيضا موصل خدمة Azure للاتصال بذاكرة التخزين المؤقت ل Redis باستخدام نوع عميل Django. ما هي أسماء متغيرات البيئة التي أحتاج إلى استخدامها؟*" قد يقدم لك Copilot اقتراح تعليمات برمجية مشابها لاقتراح في الخيار 2: بدون خطوات GitHub Copilot أدناه وحتى إخبارك بإجراء التغيير في ملف التكوين/database.php . إذا طلب منك ذلك، فسجل الدخول إلى GitHub Copilot ل Azure للحصول على إجابات أكثر دقة.
- إضافة اقتراح التعليمات البرمجية. لا يمنحك GitHub Copilot نفس الاستجابة في كل مرة، وهو ليس صحيحا دائما. قد تحتاج إلى طرح المزيد من الأسئلة لضبط استجابتها. للحصول على تلميحات، راجع ما الذي يمكنني فعله باستخدام GitHub Copilot في مساحة التعليمات البرمجية الخاصة بي؟.
الخطوة 2 (الخيار 2: بدون GitHub Copilot):
- افتح التكوين/database.php في المستكشف. ابحث عن
mysql
القسم وقم بإجراء التغييرات التالية: - استبدل
DB_HOST
(السطر 49) بAZURE_MYSQL_HOST
. - استبدل
DB_DATABASE
(السطر 51) بAZURE_MYSQL_DBNAME
. - استبدل
DB_USERNAME
(السطر 52) بAZURE_MYSQL_USERNAME
. - استبدل
DB_PASSWORD
(السطر 53) بAZURE_MYSQL_PASSWORD
. - استبدل
DB_PORT
(السطر 50) بAZURE_MYSQL_PORT
. - قم بالتمرير إلى قسم Redis
cache
وقم بإجراء التغييرات التالية: - استبدل
REDIS_HOST
(السطر 142) بAZURE_REDIS_HOST
. - استبدل
REDIS_PASSWORD
(السطر 144) بAZURE_REDIS_PASSWORD
. - استبدل
REDIS_PORT
(السطر 145) بAZURE_REDIS_PORT
. - استبدل
REDIS_CACHE_DB
(السطر 146) بAZURE_REDIS_DATABASE
. - في نفس القسم، أضف سطرا باستخدام
'scheme' => 'tls',
. يخبر هذا التكوين Laravel باستخدام التشفير للاتصال ب Redis.
الخطوة 3:
- حدد ملحق البرنامج للتحكم بالمصادر.
- في مربع النص، اكتب رسالة تثبيت مثل
Configure Azure database and cache connections
. أو حددواسمح ل GitHub Copilot بإنشاء رسالة تثبيت لك.
- حدد Commit، ثم قم بالتأكيد باستخدام Yes.
- حدد مزامنة التغييرات 1، ثم تأكد من موافق.
الخطوة 4: مرة أخرى في صفحة Deployment Center في مدخل Microsoft Azure:
- حدد علامة التبويب Logs، ثم حدد Refresh لمشاهدة تشغيل التوزيع الجديد.
- في عنصر السجل لتشغيل النشر، حدد إدخال Build/Deploy Logs مع أحدث طابع زمني.
الخطوة 5: يتم نقلك إلى مستودع GitHub الخاص بك وترى أن إجراء GitHub قيد التشغيل. يحدد ملف سير العمل مرحلتين منفصلتين، الإنشاء والتوزيع. انتظر حتى يتم تشغيل GitHub لإظهار حالة Success. يستغرق حوالي 10 دقائق.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
6 - إنشاء مخطط قاعدة بيانات
يضع معالج الإنشاء خادم قاعدة بيانات MySQL خلف نقطة نهاية خاصة، بحيث يمكن الوصول إليه فقط من الشبكة الظاهرية. نظرا لأن تطبيق خدمة التطبيق متكامل بالفعل مع الشبكة الظاهرية، فإن أسهل طريقة لتشغيل عمليات ترحيل قاعدة البيانات مع قاعدة البيانات الخاصة بك هي مباشرة من داخل حاوية خدمة التطبيق.
الخطوة 1: العودة إلى صفحة App Service، في القائمة اليسرى،
- حدد Development Tools>SSH.
- حدد Go.
الخطوة 2: في محطة SSH الطرفية:
- شغّل
cd /home/site/wwwroot
. فيما يلي جميع الملفات المنشورة. - شغّل
php artisan migrate --force
. إذا نجحت، فإن App Service تتصل بنجاح بقاعدة بيانات MySQL.
تلميح
في جلسة SSH، يمكن أن تستمر التغييرات على الملفات في /home
فقط بعد إعادة تشغيل التطبيق. التغييرات خارج /home
غير مستمرة.
7 - تغيير جذر الموقع
تبدأ دورة حياة تطبيق Laravel في الدليل العام بدلاً من. تستخدم حاوية PHP الافتراضية ل App Service Nginx، والتي تبدأ في الدليل الجذر للتطبيق. لتغيير جذر الموقع، تحتاج إلى تغيير ملف تكوين Nginx في حاوية PHP (/etc/nginx/sites-available/default). لراحتك، يحتوي مستودع العينة على ملف تكوين مخصص يسمى افتراضي. كما هو ملاحظ سابقا، لا تريد استبدال هذا الملف باستخدام SSH shell، لأن التغيير خارج /home
وسيتم فقدانه بعد إعادة تشغيل التطبيق.
الخطوة 1:
- من القائمة اليسرى، حدد تكوين.
- حدد علامة التبويب إعدادات عامة.
الخطوة 2: في علامة التبويب الإعدادات العامة:
- في مربع أمر بدء التشغيل، أدخل الأمر التالي: cp /home/site/wwwroot/default /etc/nginx/sites-available/default&service nginx reload.
- حدد حفظ، ثم حدد متابعة. يحل الأمر محل ملف تكوين Nginx في حاوية PHP ويعيد تشغيل Nginx. يضمن هذا التكوين إجراء نفس التغيير على الحاوية في كل مرة تبدأ فيها.
8 - استعراض للوصول إلى التطبيق
الخطوة 1: في صفحة App Service:
- من القائمة اليسرى، حدد نظرة عامة.
- حدد المجال الافتراضي لتطبيقك.
الخطوة 2: إضافة بعض المهام إلى القائمة. تهانينا، أنت تقوم بتشغيل تطبيق PHP آمن يستند إلى البيانات في Azure App Service.
تلميح
تطبيق العينة ينفذ نمط ذاكرة التخزين المؤقت المصاحبة . عند إعادة تحميل الصفحة بعد إجراء تغييرات على البيانات، يظهر وقت الاستجابة في صفحة الويب وقتا أسرع بكثير لأنه يقوم بتحميل البيانات من ذاكرة التخزين المؤقت بدلا من قاعدة البيانات.
9 - دفق سجلات التشخيص
تلتقط Azure App Service جميع الرسائل التي تم تسجيلها في وحدة التحكم لمساعدتك في تشخيص المشكلات المتعلقة بالتطبيق الخاص بك. يقوم نموذج التطبيق بإخراج رسائل سجل وحدة التحكم في كل نقطة من نقاط النهاية الخاصة به لتوضيح هذه الإمكانية. بشكل افتراضي، تقوم وظيفة تسجيل Laravel (على سبيل المثال، Log::info()
) بإخراج ملف محلي. يجعل إعداد التطبيق الخاص بك LOG_CHANNEL
من وقت سابق إدخالات السجل قابلة للوصول من دفق سجل App Service.
الخطوة 1: في صفحة App Service:
- من القائمة اليسرى، حدد تسجيلات خدمة التطبيق.
- ضمن سجل التطبيقات، حدد نظام الملفات.
الخطوة 2: من القائمة اليسرى، حدد Log stream. ترى سجلات تطبيقك، بما في ذلك سجلات النظام الأساسي والسجلات من داخل الحاوية.
تنظيف الموارد
عند الانتهاء، يمكنك حذف جميع الموارد من اشتراك Azure الخاص بك عن طريق حذف مجموعة الموارد.
الخطوة 1: في شريط البحث أعلى مدخل Microsoft Azure:
- أدخل اسم مجموعة الموارد.
- حدد مجموعة الموارد.
الخطوة 2: في صفحة مجموعة الموارد، حدد حذف مجموعة الموارد.
الخطوة 3:
- أدخل اسم مجموعة الموارد لتأكيد حذفك.
- حدد حذف.
2. إنشاء موارد Azure ونشر نموذج تطبيق
في هذه الخطوة، يمكنك إنشاء موارد Azure ونشر نموذج تطبيق إلى App Service على Linux. تنشئ الخطوات المستخدمة في هذا البرنامج التعليمي مجموعة من الموارد الآمنة بشكل افتراضي التي تتضمن خدمة التطبيقات وقاعدة بيانات Azure ل MySQL.
تحتوي مساحة التعليمات البرمجية GitHub بالفعل على Azure Developer CLI (AZD).
إنشاء مفتاح تشفير Laravel باستخدام
php artisan key:generate --show
:php artisan key:generate --show
سجل الدخول إلى Azure عن طريق تشغيل
azd auth login
الأمر واتباع المطالبة:azd auth login
إنشاء موارد Azure الضرورية ونشر التعليمات البرمجية للتطبيق باستخدام
azd up
الأمر . اتبع المطالبة لتحديد الاشتراك والموقع المطلوبين لموارد Azure.azd up
عند المطالبة، قدم الإجابات التالية:
السؤال إجابة أدخل اسم بيئة جديدة اكتب اسم فريد. يستخدم قالب AZD هذا الاسم كجزء من اسم DNS لتطبيق الويب الخاص بك في Azure ( <app-name>-<hash>.azurewebsites.net
). يسمح بالأحرف الأبجدية الرقمية والواصلات.حدد اشتراك Azure لاستخدامه حدد Subscription الخاص بك. تحديد موقع Azure لاستخدامه تحديد الموقع. أدخل قيمة للمعلمة الآمنة للبنية الأساسية "appKey" استخدم إخراج php artisan key:generate --show
هنا. ينشئ قالب AZD سر Key Vault له يمكنك استخدامه في تطبيقك.أدخل قيمة للمعلمة الآمنة للبنية الأساسية "databasePassword" كلمة مرور قاعدة البيانات ل MySQL. يجب أن يكون طوله 8 أحرف على الأقل وأن يحتوي على أحرف كبيرة وأحرف صغيرة وأرقام وأحرف خاصة. azd up
يستغرق الأمر حوالي 15 دقيقة لإكماله (تستغرق ذاكرة التخزين المؤقت Redis معظم الوقت). كما أنه يقوم بتجميع ونشر التعليمات البرمجية للتطبيق الخاص بك، ولكن يمكنك تعديل التعليمات البرمجية الخاصة بك لاحقا للعمل مع App Service. أثناء تشغيله، يوفر الأمر رسائل حول عملية التوفير والنشر، بما في ذلك ارتباط إلى النشر في Azure. عند الانتهاء، يعرض الأمر أيضا ارتباطا إلى تطبيق التوزيع.يحتوي قالب AZD هذا على ملفات (azure.yaml والدليل infra ) التي تنشئ بنية آمنة بشكل افتراضي مع موارد Azure التالية:
- مجموعة الموارد: الحاوية لكافة الموارد التي تم إنشاؤها.
- خطة App Service: تحدد موارد الحوسبة ل App Service. يتم إنشاء خطة Linux في المستوى B1 .
- App Service: تمثل تطبيقك وتعمل في خطة App Service.
- الشبكة الظاهرية: متكاملة مع تطبيق App Service وتعزل حركة مرور الشبكة الخلفية.
- خادم Azure Database for MySQL المرن: يمكن الوصول إليه فقط من الشبكة الظاهرية من خلال تكامل منطقة DNS. يتم إنشاء قاعدة بيانات لك على الخادم.
- ذاكرة التخزين المؤقت Azure ل Redis: يمكن الوصول إليها فقط من داخل الشبكة الظاهرية.
- نقاط النهاية الخاصة: الوصول إلى نقاط النهاية لمخزن المفاتيح وذاكرة التخزين المؤقت Redis في الشبكة الظاهرية.
- مناطق DNS الخاصة: تمكين دقة DNS لمخزن المفاتيح وخادم قاعدة البيانات وذاكرة التخزين المؤقت Redis في الشبكة الظاهرية.
- مساحة عمل Log Analytics: تعمل كحاوية مستهدفة لتطبيقك لشحن سجلاته، حيث يمكنك أيضا الاستعلام عن السجلات.
- Key vault: يستخدم للحفاظ على كلمة مرور قاعدة البيانات الخاصة بك كما هي عند إعادة النشر باستخدام AZD.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
3. استخدام سلاسل اتصال Azure في التعليمات البرمجية للتطبيق
قام قالب AZD الذي تستخدمه بإنشاء متغيرات الاتصال لك بالفعل كإعدادات تطبيق وإخراجها إلى المحطة الطرفية لراحتك. تعد إعدادات التطبيق إحدى الطرق للحفاظ على أسرار الاتصال خارج مستودع التعليمات البرمجية.
في إخراج AZD، ابحث عن إعدادات التطبيق التي تبدأ ب
AZURE_MYSQL_
وAZURE_REDIS_
. يتم عرض أسماء الإعدادات فقط. تبدو كما يلي في إخراج AZD:App Service app has the following app settings: - AZURE_KEYVAULT_RESOURCEENDPOINT - AZURE_KEYVAULT_SCOPE - AZURE_MYSQL_DBNAME - AZURE_MYSQL_FLAG - AZURE_MYSQL_HOST - AZURE_MYSQL_PASSWORD - AZURE_MYSQL_PORT - AZURE_MYSQL_USERNAME - AZURE_REDIS_DATABASE - AZURE_REDIS_HOST - AZURE_REDIS_PASSWORD - AZURE_REDIS_PORT - AZURE_REDIS_SSL
الإعدادات التي تبدأ بمتغيرات
AZURE_MYSQL_
الاتصال لقاعدة بيانات MySQL، والإعدادات التي تبدأ بAZURE_REDIS_
هي لذاكرة التخزين المؤقت Redis. تحتاج إلى استخدامها في التعليمات البرمجية الخاصة بك لاحقا. لراحتك، يعرض لك قالب AZD الارتباط المباشر إلى صفحة إعدادات التطبيق في مدخل Microsoft Azure.من المستكشف، افتح التكوين/database.php. هذا هو ملف التكوين لاتصالات ذاكرة التخزين المؤقت لقاعدة البيانات وRedis.
ابحث عن الجزء الذي يعرف
mysql
الاتصال (الأسطر 46-64) واستبدلDB_HOST
DB_PORT
DB_DATABASE
DB_USERNAME
و و وDB_PASSWORD
AZURE_MYSQL_
بإعدادات التطبيق من إخراج AZD. يجب أن يبدو الاتصال الخاص بكmysql
مثل التعليمات البرمجية التالية.'mysql' => [ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' => env('AZURE_MYSQL_HOST', '127.0.0.1'), 'port' => env('AZURE_MYSQL_PORT', '3306'), 'database' => env('AZURE_MYSQL_DBNAME', 'forge'), 'username' => env('AZURE_MYSQL_USERNAME', 'forge'), 'password' => env('AZURE_MYSQL_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], ],
لمزيد من المعلومات حول تكوين قاعدة البيانات في Laravel، راجع وثائق Laravel.
ابحث عن الجزء الذي يعرف اتصال ذاكرة التخزين المؤقت Redis (الأسطر 140-147) واستبدل
REDIS_HOST
REDIS_PASSWORD
REDIS_PORT
و وREDIS_CACHE_DB
Azure_REDIS_
بإعدادات التطبيق من إخراج AZD.'scheme' => 'tls',
أضف أيضا إلى الاتصال. يجب أن يبدو اتصال ذاكرة التخزين المؤقت مثل التعليمات البرمجية التالية:'cache' => [ 'scheme' => 'tls', 'url' => env('REDIS_URL'), 'host' => env('AZURE_REDIS_HOST', '127.0.0.1'), 'username' => env('REDIS_USERNAME'), 'password' => env('AZURE_REDIS_PASSWORD'), 'port' => env('AZURE_REDIS_PORT', '6379'), 'database' => env('AZURE_REDIS_DATABASE', '1'), ],
لمزيد من المعلومات حول تكوين ذاكرة التخزين المؤقت Redis في Laravel، راجع وثائق Laravel.
ملاحظة
تذكر أن التغييرات التي أجريتها لم يتم نشرها بعد. ستقوم بنشرها في نهاية الخطوة التالية.
4. تكوين إعدادات Laravel في تطبيق الويب
من المستكشف، افتح infra/resources.bicep. هذا هو ملف Bicep الذي يحدد موارد Azure التي تم إنشاؤها.
ابحث عن الجزء الذي يحدد إعدادات التطبيق (الأسطر 510-514) وقم بإلغاء التعليق عليها. إعدادات التطبيق هذه هي:
الإعدادات الوصف CACHE_DRIVER
يخبر Laravel باستخدام Redis كذاكرة تخزين مؤقت (راجع وثائق Laravel). MYSQL_ATTR_SSL_CA
مطلوب لفتح اتصال TLS ب MySQL في Azure. يتم تضمين ملف الشهادة في مستودع العينة للراحة. يستخدم هذا المتغير بواسطة اتصال mysql في التكوين/database.php LOG_CHANNEL
يخبر Laravel إلى توجيه السجلات إلى stderr
، ما يجعلها متاحة لسجلات App Service (راجع وثائق Laravel).APP_DEBUG
تمكين صفحات وضع التصحيح في Laravel (راجع وثائق Laravel). APP_KEY
متغير تشفير Laravel. قام قالب AZD بالفعل بإنشاء سر Key Vault (الأسطر 212-217)، بحيث يمكنك الوصول إليه باستخدام مرجع Key Vault. في infra/resources.bicep، ابحث عن تعريف المورد لتطبيق App Service وخط إلغاء التعليق 315:
appCommandLine: 'cp /home/site/wwwroot/default /etc/nginx/sites-available/default && service nginx reload'
تبدأ دورة حياة تطبيق Laravel في الدليل /public بدلا من جذر التطبيق. تستخدم حاوية PHP الافتراضية لخدمة التطبيقات Nginx، والتي تبدأ في جذر التطبيق. لتغيير جذر الموقع، تحتاج إلى تغيير ملف تكوين Nginx في حاوية PHP (/etc/nginx/sites-available/default). لراحتك، يحتوي مستودع العينة على ملف تكوين بديل يسمى default، والذي يخبر Nginx بالبحث في الدليل /public . يتم تشغيل هذا الأمر المخصص في
appCommandLine
كل مرة يبدأ فيها التطبيق في تطبيق استبدال الملف في كل مرة يتم فيها إعادة تحميل حاوية Linux من حالة نظيفة.مرة أخرى في الوحدة الطرفية لمساحة التعليمات البرمجية، قم بتشغيل
azd up
مرة أخرى.azd up
تلميح
azd up
يعمل على تشغيل azd package
azd provision
و و azd deploy
معا، وهذا منطقي لأنك تجري تغييرات في البنية الأساسية والتطبيق. لإجراء تغييرات على البنية الأساسية فقط، قم بتشغيل azd provision
. لنشر التغييرات على التعليمات البرمجية للتطبيق فقط، قم بتشغيل azd deploy
.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
5. إنشاء مخطط قاعدة البيانات
باستخدام قاعدة بيانات MySQL المحمية بالشبكة الظاهرية، فإن أسهل طريقة لتشغيل عمليات ترحيل قاعدة بيانات Laravel هي في جلسة SSH مع حاوية Linux في App Service.
في إخراج AZD، ابحث عن عنوان URL لجلسة SSH وانتقل إليه في المتصفح. يبدو مثل هذا في الإخراج:
Open SSH session to App Service container at: <URL>
في جلسة SSH، قم بتشغيل عمليات ترحيل قاعدة البيانات من الدليل /home/site/wwwroot :
cd /home/site/wwwroot php artisan migrate --force
إذا نجحت، فإن App Service تتصل بنجاح بقاعدة البيانات.
ملاحظة
يمكن أن تستمر التغييرات التي يتم إجراؤها على الملفات في /home
فقط بعد عمليات إعادة تشغيل التطبيق.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
6. تصفح إلى التطبيق
في إخراج AZD، ابحث عن عنوان URL لتطبيقك وانتقل إليه في المستعرض. يبدو عنوان URL كما يلي في إخراج AZD:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <URL>
أضف القليل من المهام إلى القائمة.
تهانينا، أنت تقوم بتشغيل تطبيق ويب في Azure App Service، مع اتصال آمن بقاعدة بيانات Azure ل MySQL.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
7. دفق سجلات التشخيص
تلتقط Azure App Service جميع الرسائل التي تم تسجيلها في وحدة التحكم لمساعدتك في تشخيص المشكلات المتعلقة بالتطبيق الخاص بك. للراحة، قام قالب AZD بالفعل بتمكين التسجيل إلى نظام الملفات المحلي ويشحن السجلات إلى مساحة عمل Log Analytics.
يقوم نموذج التطبيق بإخراج رسائل سجل وحدة التحكم في كل نقطة من نقاط النهاية الخاصة به لتوضيح هذه الإمكانية. بشكل افتراضي، تقوم وظيفة تسجيل Laravel (على سبيل المثال، Log::info()
) بإخراج ملف محلي. يجعل إعداد التطبيق الخاص بك LOG_CHANNEL
من وقت سابق إدخالات السجل قابلة للوصول من دفق سجل App Service.
Route::get('/', function () {
Log::info("Get /");
$startTime = microtime(true);
// Simple cache-aside logic
if (Cache::has('tasks')) {
$data = Cache::get('tasks');
} else {
$data = Task::orderBy('created_at', 'asc')->get();
Cache::add('tasks', $data);
}
return view('tasks', ['tasks' => $data, 'elapsed' => microtime(true) - $startTime]);
});
في إخراج AZD، ابحث عن الارتباط لدفق سجلات App Service وانتقل إليه في المتصفح. يبدو الارتباط كما يلي في إخراج AZD:
Stream App Service logs at: <URL>
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
8- تنظيف الموارد
لحذف كافة موارد Azure في بيئة النشر الحالية، قم بتشغيل azd down
المطالبات واتبعها.
azd down
استكشاف الأخطاء وإصلاحها
أتلقى الخطأ أثناء عمليات ترحيل قاعدة البيانات php_network_getaddresses: getaddrinfo for mysqldb failed: No address associated with hostname...
يشير إلى أن متغيرات اتصال MySQL لم يتم تكوينها بشكل صحيح.
AZURE_MYSQL_
تحقق من تكوين إعدادات التطبيق بشكل صحيح في 3. استخدم سلاسل اتصال Azure في التعليمات البرمجية للتطبيق.
أحصل على صفحة فارغة في المتصفح.
يشير إلى أنه لا يمكن ل App Service العثور على ملفات بدء PHP في /public. اتبع الخطوات الواردة في 4. تكوين إعدادات Laravel في تطبيق الويب.
أحصل على صفحة تصحيح الأخطاء في المتصفح قائلا Unsupported cipher or incorrect key length.
يشير إلى تعيين APP_KEY
الإعداد إلى مفتاح غير صالح. عند تشغيل azd up
، تأكد من تعيين appKey
إلى إخراج php artisan key:generate --show
.
أحصل على صفحة تصحيح الأخطاء في المتصفح قائلا Uncaught Error: Class "Illuminate\..." not found.
يشير هذا الخطأ والأخطاء المماثلة إلى أنك لم تقم بتشغيل composer install
قبل azd up
، أو أن الحزم الموجودة في دليل /vendor قديمة. تشغيل composer install
ومرة azd deploy
أخرى.
أحصل على صفحة تصحيح الأخطاء في المتصفح قائلا php_network_getaddresses: getaddrinfo for redishost failed: Name or service not known.
يشير إلى أن متغيرات اتصال Redis لم يتم تكوينها بشكل صحيح.
AZURE_REDIS_
تحقق من تكوين إعدادات التطبيق بشكل صحيح في 3. استخدم سلاسل اتصال Azure في التعليمات البرمجية للتطبيق.
أحصل على صفحة تصحيح الأخطاء في المتصفح قائلا SQLSTATE[42S02]: Base table or view not found: 1146 Table 'XXXX-XXXXXXXXX-mysql-database.tasks' doesn't exist
وهذا يعني أنك لم تقم بتشغيل عمليات ترحيل قاعدة البيانات، أو أن عمليات ترحيل قاعدة البيانات لم تكن ناجحة. اتبع الخطوات في 5. إنشاء مخطط قاعدة البيانات.
الأسئلة الشائعة
- كم يكلف هذا الإعداد؟
- كيف أعمل الاتصال بقاعدة بيانات MySQL المؤمنة خلف الشبكة الظاهرية باستخدام أدوات أخرى؟
- كيف يمكنني تغيير إعداد تطبيق APP_KEY إلى مرجع Key Vault؟
- كيف يعمل تطوير التطبيقات المحلية مع إجراءات GitHub؟
- لماذا توزيع إجراءات GitHub بطيء جدًا؟
- ليس لدي أذونات لإنشاء هوية معينة من قبل المستخدم
- ماذا يمكنني أن أفعل مع GitHub Copilot في مساحة التعليمات البرمجية الخاصة بي؟
- كم يكلف هذا الإعداد؟
- كيف أعمل الاتصال بقاعدة بيانات MySQL المؤمنة خلف الشبكة الظاهرية باستخدام أدوات أخرى؟
- كيف يعمل تطوير التطبيقات المحلية مع إجراءات GitHub؟
- لماذا توزيع إجراءات GitHub بطيء جدًا؟
- ليس لدي أذونات لإنشاء هوية معينة من قبل المستخدم
- ماذا يمكنني أن أفعل مع GitHub Copilot في مساحة التعليمات البرمجية الخاصة بي؟
كم يكلف هذا الإعداد؟
تسعير الموارد التي تم إنشاؤها كما يلي:
- يتم إنشاء خطة App Service في الطبقة الأساسية، ويمكن تغيير حجمها زيادة أو نقصانًا. راجع تسعير App Service.
- يتم إنشاء الخادم المرن MySQL في طبقة B1ms ويمكن توسيع نطاقه لأعلى أو لأسفل. مع حساب Azure المجاني، تكون طبقة B1ms مجانيا لمدة 12 شهرا، حتى الحدود الشهرية. راجع أسعار Azure Database for MySQL.
- يتم إنشاء ذاكرة التخزين المؤقت Azure ل Redis في المستوى الأساسي مع الحد الأدنى لحجم ذاكرة التخزين المؤقت. هناك تكلفة صغيرة مرتبطة بهذا المستوى. يمكنك توسيع نطاقه إلى مستويات أداء أعلى للحصول على قابلية وصول عالية، وتكوين أنظمة المجموعات، وميزات أخرى. راجع تسعير Azure Cache for Redis.
- لا تتحمل الشبكة الظاهرية رسوما ما لم تقم بتكوين وظائف إضافية، مثل التناظر. راجع أسعار شبكة Azure الظاهرية.
- تتحمل منطقة DNS الخاصة رسوما صغيرة. راجع أسعار Azure DNS.
كيف أعمل الاتصال بقاعدة بيانات MySQL المؤمنة خلف الشبكة الظاهرية باستخدام أدوات أخرى؟
- للوصول الأساسي من أداة سطر الأوامر، يمكنك التشغيل
mysql
من وحدة SSH الطرفية للتطبيق. - للاتصال من أداة سطح مكتب مثل MySQL Workbench، يجب أن يكون جهازك داخل الشبكة الظاهرية. على سبيل المثال، قد يكون جهاز Azure ظاهري متصل بإحدى الشبكات الفرعية، أو جهازا في شبكة محلية لديه اتصال VPN من موقع إلى موقع مع شبكة Azure الظاهرية.
- يمكنك أيضا دمج Azure Cloud Shell مع الشبكة الظاهرية.
كيف يمكنني تغيير إعداد تطبيق APP_KEY إلى مرجع Key Vault؟
من خطوات المدخل في 4 - تكوين متغيرات Laravel، يمكنك التغيير APP_KEY
إلى مرجع Key Vault عن طريق تشغيل أوامر Azure CLI التالية في مساحة التعليمات البرمجية GitHub:
# Change the following variables to match your environment
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
KEY_VAULT_NAME=<key-vault-name>
APP_SERVICE_NAME=<app-name>
SECRET_NAME=laravelAppKey
# Set the subscription ID
az account set --subscription $SUBSCRIPTION_ID
# Assign 'Key Vault Secrets Officer' role to your user at the scope of the key vault
az role assignment create \
--assignee $(az ad signed-in-user show --query id -o tsv) \
--role $(az role definition list --name "Key Vault Secrets Officer" --query "[].id" -o tsv) \
--scope $(az keyvault show --name $KEY_VAULT_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
# Add the secret to the key vault
az keyvault secret set \
--vault-name $KEY_VAULT_NAME \
--name $SECRET_NAME \
--value $(php artisan key:generate --show)
# Add Key Vault reference to the App Service configuration
az webapp config appsettings set \
--resource-group $RESOURCE_GROUP \
--name $APP_SERVICE_NAME \
--settings "APP_KEY=@Microsoft.KeyVault(SecretUri=https://$KEY_VAULT_NAME.vault.azure.net/secrets/$SECRET_NAME)"
يمكنك أيضا القيام بنفس الشيء في المدخل. لمزيد من المعلومات، راجع:
كيف يعمل تطوير التطبيقات المحلية مع إجراءات GitHub؟
خذ ملف سير العمل الذي تم إنشاؤه تلقائيا من خدمة التطبيق كمثال، git push
كل يبدأ تشغيل بنية وتوزيع جديد. من نسخة محلية من مستودع GitHub، يمكنك إجراء التحديثات المطلوبة دفعه إلى GitHub. على سبيل المثال:
git add .
git commit -m "<some-message>"
git push origin main
لماذا توزيع إجراءات GitHub بطيء جدًا؟
يعرف ملف سير العمل الذي تم إنشاؤه تلقائيا من خدمة التطبيق البناء ثم التوزيع والتشغيل على وظيفتين. لأن كل مهمة تعمل في بيئتها النظيفة الخاصة، يضمن ملف سير العمل أن deploy
الوظيفة لديها حق الوصول إلى الملفات من build
الوظيفة:
- في نهاية المهمة
build
، قم بتحميل الملفات كقطع أثرية. - في بداية المهمة
deploy
، قم بتنزيل البيانات الاصطناعية.
يتم إنفاق معظم الوقت الذي تستغرقه العملية المكونة من وظيفتين في تحميل وتنزيل البيانات الاصطناعية. إذا أردت، يمكنك تبسيط ملف سير العمل عن طريق دمج الوظيفتين في واحدة، ما يلغي الحاجة إلى خطوات التحميل والتنزيل.
ليس لدي أذونات لإنشاء هوية معينة من قبل المستخدم
راجع إعداد نشر إجراءات GitHub من مركز النشر.
ماذا يمكنني أن أفعل مع GitHub Copilot في مساحة التعليمات البرمجية الخاصة بي؟
قد تلاحظ أن طريقة عرض دردشة GitHub Copilot كانت موجودة بالفعل لك عند إنشاء مساحة التعليمات البرمجية. لراحتك، نقوم بتضمين ملحق دردشة GitHub Copilot في تعريف الحاوية (راجع .devcontainer/devcontainer.json). ومع ذلك، تحتاج إلى حساب GitHub Copilot (يتوفر إصدار تجريبي مجاني لمدة 30 يوما).
بعض النصائح لك عند التحدث إلى GitHub Copilot:
- في جلسة دردشة واحدة، تعتمد الأسئلة والأجوبة على بعضها البعض ويمكنك ضبط أسئلتك لضبط الإجابة التي تحصل عليها.
- بشكل افتراضي، لا يملك GitHub Copilot حق الوصول إلى أي ملف في المستودع الخاص بك. لطرح أسئلة حول ملف، افتح الملف في المحرر أولا.
- للسماح ل GitHub Copilot بالوصول إلى جميع الملفات في المستودع عند إعداد إجاباته، ابدأ سؤالك ب
@workspace
. لمزيد من المعلومات، انظر Use the @workspace agent. - في جلسة الدردشة، يمكن ل GitHub Copilot اقتراح تغييرات و (مع
@workspace
) حتى مكان إجراء التغييرات، ولكن لا يسمح بإجراء التغييرات نيابة عنك. الأمر متروك لك لإضافة التغييرات المقترحة واختبارها.
الخطوات التالية
تقدم إلى البرنامج التعليمي التالي لمعرفة كيفية تأمين تطبيقك باستخدام مجال وشهادة مخصصين.
أو، يمكنك التحقق من الموارد الأخرى: