إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يوضح هذا الدرس كيفية إنشاء تطبيق PHP آمن في Azure App Service متصل بقاعدة بيانات MySQL باستخدام Azure Database for MySQL Flexible Server. كما تقوم بنشر ذاكرة تخزين مؤقت Azure لنظام Redis لتمكين كود التخزين المؤقت في تطبيقك. Azure App Service هي خدمة استضافة ويب قابلة للتطوير بدرجة كبيرة وتصحيح ذاتي يمكنها نشر التطبيقات بسهولة على Windows أو Linux. عندما تنتهي، سيكون لديك تطبيق Laravel يعمل على Azure App Service على لينكس.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. إذا لم يكن لديك حساب Azure، يمكنك إنشاء حساب مجانا.
- حساب GitHub. يمكنك أيضا الحصول على واحد مجانا.
- معرفة PHP مع تطوير Laravel.
- (اختياري) لتجربة GitHub Copilot، حساب GitHub Copilot. يتوفر إصدار تجريبي مجاني لمدة 30 يوما.
تشغيل تطبيق العرض التوضيحي
قم بإعداد تطبيق نموذجي قائم على البيانات كنقطة انطلاق. يتضمن مستودع العينات تكوين حاوية التطوير . تحتوي حاوية التطوير على كل ما تحتاجه لتطوير تطبيق، بما في ذلك قاعدة البيانات وذاكرة التخزين المؤقت وجميع متغيرات البيئة التي يحتاجها نموذج التطبيق. يمكن تشغيل حاوية التطوير في مساحة التعليمات البرمجية 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.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
إنشاء خدمة التطبيقات، قاعدة البيانات، وذاكرة تخزين مؤقت
في هذه الخطوة، يمكنك إنشاء موارد Azure. تنشئ الخطوات المستخدمة في هذا البرنامج التعليمي مجموعة من الموارد الآمنة افتراضيا التي تتضمن خدمة التطبيقات وقاعدة بيانات Azure ل MySQL وذاكرة التخزين المؤقت Azure ل Redis. بالنسبة لعملية الإنشاء، يمكنك تحديد:
- اسم تطبيق الويب. يتم استخدامه كجزء من اسم DNS لتطبيقك.
- المنطقة لتشغيل التطبيق فعلياً في العالم. كما أنه جزء من اسم DNS لتطبيقك.
- مكدس الذاكرة المؤقتة لوقت التشغيل للتطبيق. إنه المكان الذي تحدد فيه إصدار PHP لاستخدامه لتطبيقك.
- خطة الاستضافة للتطبيق. إنها طبقة الأسعار التي تتضمن مجموعة الميزات وسعة التحجيم لتطبيقك.
- مجموعة الموارد للتطبيق. تتيح لك مجموعة الموارد تجميع جميع موارد Azure اللازمة للتطبيق في حاوية منطقية.
قم بتسجيل الدخول إلى بوابة Azure. اتبع هذه الخطوات لإنشاء موارد خدمة تطبيقات Azure الخاصة بك.
الخطوة 1: في مدخل Microsoft Azure:
- في شريط البحث العلوي، اكتب app service.
- حدد العنصر المسمى App Service ضمن عنوان Services .
- حدد إنشاء>تطبيق ويب. يمكنك أيضا التنقل مباشرة إلى Create Web App .
الخطوة 2: في صفحة إنشاء تطبيق ويب، املأ النموذج كما يلي.
- الاسم: msdocs-laravel-mysql. ينشئ بوابة Azure مجموعة موارد تسمى msdocs-laravel-mysql_group.
- مكدس وقت التشغيل: PHP 8.4.
- نظام التشغيل: Linux.
- المنطقة: أي منطقة Azure قريبة منك.
- خطة لينكس:إنشاء جديد واستخدام اسم msdocs-laravel-mysql.
- خطة التسعير: أساسية. عندما تكون مستعدا، يمكنك التوسع إلى مستوى تسعير مختلف.
الخطوة 3:
- اختر التالي للانتقال إلى تبويب قاعدة البيانات .
- حدد إنشاء قاعدة بيانات.
- في Engine، حدد MySQL - Flexible Server.
- حدد Create an Azure Cache for Redis.
- في الاسم (ضمن ذاكرة التخزين المؤقت)، أدخل اسما لذاكرة التخزين المؤقت.
- في SKU، حدد Basic.
الخطوة 4:
- اختر التالي للانتقال إلى تبويب النشر .
- تمكين النشر المستمر.
- في المؤسسة، حدد الاسم المستعار GitHub الخاص بك.
- في المستودع، حدد laravel-tasks.
- في الفرع، حدد رئيسي.
- تأكد من تعطيل المصادقة الأساسية .
- حدد "Review + create".
- وبعد اكتمال عملية التحقق، حدد Create.
الخطوة 5: يستغرق النشر بضع دقائق حتى يكتمل. لرؤية تطبيق الويب، اختر الذهاب إلى المصدر. النشر ينشئ الموارد التالية:
- مجموعة الموارد: الحاوية لكافة الموارد التي تم إنشاؤها.
- خطة App Service: تحدد موارد الحوسبة ل App Service. يتم إنشاء خطة Linux في الطبقة الأساسية.
- App Service: تمثل تطبيقك وتعمل في خطة App Service.
- الشبكة الظاهرية: متكاملة مع تطبيق App Service وتعزل حركة مرور الشبكة الخلفية.
- نقاط النهاية الخاصة: الوصول إلى نقاط النهاية لخادم قاعدة البيانات وذاكرة التخزين المؤقت Redis في الشبكة الظاهرية.
- واجهات الشبكة: تمثل عناوين IP الخاصة، واحدة لكل نقطة من نقاط النهاية الخاصة.
- خادم Azure Database for MySQL المرن: يمكن الوصول إليه فقط من خلف نقطة النهاية الخاصة به. يتم إنشاء قاعدة بيانات ومستخدم لك على الخادم.
- ذاكرة التخزين المؤقت Azure ل Redis: يمكن الوصول إليها فقط من خلف نقطة النهاية الخاصة بها.
- مناطق DNS الخاصة: تمكين دقة DNS لخادم قاعدة البيانات وذاكرة التخزين المؤقت Redis في الشبكة الظاهرية.
أسرار الاتصال الآمن
النشر يولد متغيرات الاتصال الخاصة بك بالفعل كإعدادات التطبيق. أفضل الممارسات الأمنية هي إبقاء الأسرار خارج خدمة التطبيقات تماما. انقل أسرارك إلى خزنة مفاتيح وغير إعداد التطبيق إلى مراجع خزنة المفاتيح بمساعدة موصلات الخدمة.
الخطوة 1: استرجع سلسلة الاتصال الموجودة.
- في القائمة اليسرى من صفحة خدمة التطبيقات، اخترمتغيرات بيئة>.
- حدد سلاسل الاتصال.
- حدد AZURE_MYSQL_CONNECTIONSTRING.
- في إعداد إضافة/تحرير التطبيق، في حقل القيمة ، انسخ اسم المستخدم وكلمة المرور لاستخدامها لاحقا. تتيح لك سلسلة الاتصال الاتصال بقاعدة بيانات MySQL المؤمنة خلف نقاط النهاية الخاصة. الأسرار محفوظة مباشرة في تطبيق خدمة التطبيقات، وهذا ليس الأفضل. ستغير هذا التكوين.
الخطوة 2: إنشاء مخزن رئيسي للإدارة الآمنة للبيانات السرية.
- في شريط البحث العلوي، اكتب "key vault"، ثم حدد Marketplace>Key Vault.
- في مجموعة الموارد، اختر msdocs-laravel-mysql_group.
- في اسم خزنة المفتاح، أدخل اسما يتكون فقط من حروف وأرقام.
- في المنطقة، اختر نفس الموقع الذي توجد فيه مجموعة الموارد.
الخطوة 3: أمن خزنة المفاتيح باستخدام نقطة نهاية خاصة.
- حدد علامة التبويب Networking .
- إلغاء تحديد تمكين الوصول العام.
- حدد Create a private endpoint.
- في مجموعة الموارد، اختر msdocs-laravel-mysql_group.
- في مربع الحوار، في الموقع، حدد نفس موقع تطبيق App Service.
- في Name، أدخل msdocs-laravel-mysqlVaultEndpoint.
- في الشبكة الافتراضية، اختر الشبكة الافتراضية في مجموعة msdocs-laravel-mysql_group .
- في الشبكة الفرعية، حدد الشبكة الفرعية المتوافقة المتوفرة.
- حدد موافق.
- حدد Review + create، ثم حدد Create. انتظر حتى ينتهي نشر مخزن المفاتيح. يجب أن ترى أن نشرك قد اكتمل.
الخطوة 4: أنشئ موصل MySQL.
- في شريط البحث العلوي، أدخل msdocs-laravel-mysql، ثم اختر مورد خدمة التطبيقات المسمى msdocs-laravel-mysql.
- في صفحة خدمة التطبيقات، في القائمة اليسرى، اختر موصل خدمة الإعدادات>.
- حدد إنشاء.
- بالنسبة إلى نوع الخدمة، حدد DB لخادم MySQL المرن.
- بالنسبة لخادم MySQL المرن، اختر خادمك، على سبيل المثال، msdocs-laravel-mysql-server.
- لقاعدة بيانات MySQL، اختر قاعدة بياناتك، على سبيل المثال، msdocs-laravel-mysql-database.
الخطوة 5: قم بتكوين المصادقة لموصل MySQL.
- حدد علامة التبويب مصادقة.
- حدد Connection string.
- في كلمة المرور، الصق كلمة المرور التي نسختها سابقا.
- حدد مخزن البيانات السرية في Key Vault.
- ضمن Key Vault Connection، حدد Create new. يتم فتح مربع حوار إنشاء اتصال أعلى مربع حوار التحرير.
الخطوة 6: أنشأ اتصال خزنة المفاتيح.
- في مربع الحوار Create connection لاتصال Key Vault، في Key Vault، حدد key vault الذي أنشأته سابقا.
- حدد "استعراض + إنشاء".
- عند اكتمال التحقق من الصحة، حدد إنشاء.
الخطوة 7: أنهي إعدادات موصل MySQL.
- لقد عدت إلى مربع حوار موصل MySQL. في علامة التبويب Authentication ، انتظر حتى يتم إنشاء موصل key vault. عند الانتهاء، يقوم Key Vault Connection بتحديده تلقائيا.
- حدد "استعراض + إنشاء".
- حدد إنشاء. انتظر حتى يظهر إعلام نجاح التحديث.
الخطوة 8: قم بتكوين موصل Redis لاستخدام أسرار Key Vault.
- في صفحة Service Connectors، حدد خانة الاختيار بجوار موصل Cache for Redis، ثم حدد Edit.
- حدد علامة التبويب مصادقة.
- حدد مخزن البيانات السرية في Key Vault.
- ضمن Key Vault Connection، حدد key vault الذي أنشأته.
- حدد Next: Networking.
- حدد تكوين قواعد جدار الحماية لتمكين الوصول إلى الخدمة المستهدفة. قام معالج إنشاء التطبيق بتأمين قاعدة بيانات SQL بالفعل بنقطة نهاية خاصة.
- حدد حفظ. انتظر حتى يظهر إعلام نجاح التحديث.
الخطوة 9: تحقق من تكامل Key Vault.
- من القائمة اليسرى، اخترمتغيرات> البيئة مرة أخرى.
- بجوار AZURE_MYSQL_PASSWORD، حدد Show value. يجب أن تكون
@Microsoft.KeyVault(...)القيمة ، ما يعني أنها مرجع خزنة مفاتيح لأن السر تتم إدارته الآن في مخزن المفاتيح. - للتحقق من سلسلة الاتصال Redis، حدد Show value بجوار AZURE_REDIS_CONNECTIONSTRING.
للتلخيص، تتضمن عملية تأمين أسرار الاتصال الخاصة بك ما يلي:
- استرداد أسرار الاتصال من متغيرات البيئة لتطبيق App Service.
- إنشاء مفتاح رئيسي.
- إنشاء اتصال Key Vault بالهوية المدارة المعينة من قبل النظام.
- تحديث موصلات الخدمة لتخزين الأسرار في مخزن المفاتيح.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
تكوين متغيرات لارافيل
الخطوة 1: إنشاء CACHE_DRIVER كإعداد تطبيق.
- في تطبيق الويب الخاص بك، اختر متغيرات بيئة الإعدادات>.
- في علامة التبويب إعدادات التطبيق، حدد إضافة.
- بالنسبة للاسم، أدخل CACHE_DRIVER.
- بالنسبة للقيمة، أدخل ريديس.
- حدد تطبيق، ثم تطبيق مرة أخرى، ثم تأكيد.
الخطوة 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؟
نشر نموذج الكود
في هذه الخطوة، يمكنك تكوين نشر GitHub باستخدام GitHub Actions. إنها مجرد واحدة من العديد من الطرق للتوزيع في خدمة التطبيق، ولكنها أيضا طريقة رائعة للحصول على تكامل مستمر في عملية التوزيع الخاصة بك. بشكل افتراضي، git push كل إلى مستودع GitHub الخاص بك تبدأ إجراء الإنشاء والتوزيع.
الخطوة 1: مرة أخرى في مساحة التعليمات البرمجية GitHub من نسخة المستودع الخاصة بك، قم بتشغيل git pull origin main.
هذا الأمر يسحب ملف سير العمل الجديد إلى مساحة الشيفرة الخاصة بك.
الخطوة 2 (الخيار 1: مع GitHub Copilot):
- ابدأ جلسة دردشة جديدة عن طريق تحديد طريقة عرض الدردشة، ثم تحديد +.
- اسأل، "@workspace كيف يتصل التطبيق بقاعدة البيانات وredis؟" قد يمنحك Copilot بعض الشرح حول كيفية تكوين الإعدادات في التكوين/database.php.
- اسأل: "@workspace في وضع الإنتاج، يعمل تطبيقي في تطبيق ويب على خدمة التطبيقات، يستخدم Azure Service Connector للاتصال بخادم MySQL مرن. ما هي أسماء متغيرات البيئة التي أحتاج لاستخدامها؟" قد يعطيك Copilot اقتراحا لكود مشابه لما في الخيار الثاني: بدون خطوات GitHub Copilot وحتى يطلب منك إجراء التغيير في ملف الإعدادات/database.php .
- افتح التكوين/database.php في المستكشف وأضف اقتراح التعليمات البرمجية.
- اسأل: "@workspace تطبيق My App Service يستخدم أيضا Azure Service Connector للاتصال بذاكرة مؤقتة ل Redis باستخدام نوع عميل Django. ما هي أسماء متغيرات البيئة التي أحتاج لاستخدامها؟" قد يعطيك Copilot اقتراحا لكود مشابه لما في الخيار الثاني: بدون خطوات 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:
- حدد ملحق البرنامج للتحكم بالمصادر.
- في مربع النص، اكتب رسالة التزام مثل تكوين قاعدة بيانات Azure واتصالات الكاش. أو حدد
واسمح ل GitHub Copilot بإنشاء رسالة تثبيت لك. - حدد Commit، ثم قم بالتأكيد باستخدام Yes.
- حدد مزامنة التغييرات 1، ثم تأكد من موافق.
الخطوة 4:
- في بوابة Azure، افتح تطبيق الويب الخاص بك ثم اختر مركز نشر النشر>.
- اختر السجلات، ثم اختر التحديث لرؤية تشغيل النشر الجديد.
- في عنصر السجل لتشغيل النشر، حدد إدخال Build/Deploy Logs مع أحدث طابع زمني.
الخطوة 5: يتم نقلك إلى مستودع GitHub الخاص بك وترى أن إجراء GitHub قيد التشغيل. يحدد ملف سير العمل مرحلتين منفصلتين، الإنشاء والتوزيع. انتظر حتى يتم تشغيل GitHub لإظهار حالة Success. يستغرق حوالي 10 دقائق.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
توليد مخطط قاعدة البيانات
يضع معالج الإنشاء خادم قاعدة بيانات MySQL خلف نقطة نهاية خاصة، بحيث يمكن الوصول إليه فقط من الشبكة الظاهرية. نظرا لأن تطبيق خدمة التطبيق متكامل بالفعل مع الشبكة الظاهرية، فإن أسهل طريقة لتشغيل عمليات ترحيل قاعدة البيانات مع قاعدة البيانات الخاصة بك هي مباشرة من داخل حاوية خدمة التطبيق.
الخطوة 1: في صفحة خدمة التطبيقات، في القائمة اليسرى:
- حدد Development Tools>SSH.
- حدد Go.
الخطوة 2: في محطة SSH الطرفية:
- شغّل
cd /home/site/wwwroot. فيما يلي جميع الملفات المنشورة. - شغّل
php artisan migrate --force. إذا نجحت، فإن App Service تتصل بنجاح بقاعدة بيانات MySQL.
تلميح
في جلسة SSH، يمكن أن تستمر التغييرات على الملفات في /home فقط بعد إعادة تشغيل التطبيق. التغييرات خارج /home غير مستمرة.
تغيير جذر الموقع
تبدأ دورة حياة تطبيق Laravel في الدليل العام بدلاً من. تستخدم حاوية PHP الافتراضية ل App Service Nginx، والتي تبدأ في الدليل الجذر للتطبيق. لتغيير جذر الموقع، تحتاج إلى تغيير ملف تكوين Nginx في حاوية PHP (/etc/nginx/sites-available/default). يحتوي مستودع العينات على ملف تكوين مخصص يسمى الافتراضي. كما ذكر سابقا، لا ترغب في استبدال هذا الملف باستخدام shell SSH. التغيير خارج التطبيق /home ويضيع بعد إعادة تشغيل التطبيق.
الخطوة 1:
- من القائمة اليسرى، اختر إعدادات>الإعدادات.
- حدد علامة التبويب إعدادات عامة.
الخطوة 2: في تبويب الإعدادات العامة :
- في مربع أمر بدء التشغيل، أدخل الأمر التالي: cp /home/site/wwwroot/default /etc/nginx/sites-available/default&service nginx reload.
- حدد حفظ، ثم حدد متابعة. يحل الأمر محل ملف تكوين Nginx في حاوية PHP ويعيد تشغيل Nginx. يضمن هذا التكوين إجراء نفس التغيير على الحاوية في كل مرة تبدأ فيها.
استعرض التطبيق
الخطوة 1: في صفحة App Service:
- من القائمة اليسرى، حدد نظرة عامة.
- حدد المجال الافتراضي لتطبيقك.
الخطوة 2: إضافة بعض المهام إلى القائمة. تهانينا، أنت تقوم بتشغيل تطبيق PHP آمن يستند إلى البيانات في Azure App Service.
تلميح
تطبيق العينة ينفذ نمط ذاكرة التخزين المؤقت المصاحبة . عند إعادة تحميل الصفحة بعد إجراء تغييرات على البيانات، يظهر وقت الاستجابة في صفحة الويب وقتا أسرع بكثير لأنه يقوم بتحميل البيانات من ذاكرة التخزين المؤقت بدلا من قاعدة البيانات.
دفق سجلات التشخيص
تلتقط Azure App Service جميع الرسائل التي تم تسجيلها في وحدة التحكم لمساعدتك في تشخيص المشكلات المتعلقة بالتطبيق الخاص بك. يقوم نموذج التطبيق بإخراج رسائل سجل وحدة التحكم في كل نقطة من نقاط النهاية الخاصة به لتوضيح هذه الإمكانية. افتراضيا، وظيفة تسجيل السجلات في لارافيل، على سبيل المثال، Log::info()تخرج إلى ملف محلي. يجعل إعداد التطبيق الخاص بك LOG_CHANNEL من وقت سابق إدخالات السجل قابلة للوصول من دفق سجل App Service.
الخطوة 1: في صفحة App Service:
- من القائمة اليسرى، حدد Monitoring>App Service logs.
- ضمن سجل التطبيقات، حدد نظام الملفات.
الخطوة 2: من القائمة اليسرى، حدد Log stream. ترى سجلات تطبيقك، بما في ذلك سجلات النظام الأساسي والسجلات من داخل الحاوية.
تنظيف الموارد
عند الانتهاء، يمكنك حذف جميع الموارد من اشتراك Azure الخاص بك عن طريق حذف مجموعة الموارد.
الخطوة 1: في شريط البحث أعلى مدخل Microsoft Azure:
- أدخل اسم مجموعة الموارد.
- حدد مجموعة الموارد.
الخطوة 2: في صفحة مجموعة الموارد، حدد حذف مجموعة الموارد.
الخطوة 3:
- لتأكيد الحذف، أدخل اسم مجموعة الموارد.
- حدد حذف.
إنشاء موارد 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 الاحتياطية تستغرق أكبر وقت ممكن. كما يقوم الأمر بتجميع ونشر كود التطبيق، لكنك تعدل الكود لاحقا ليعمل مع خدمة التطبيقات. أثناء تشغيله، يوفر الأمر رسائل حول عملية التوفير والنشر، بما في ذلك ارتباط إلى النشر في 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.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
استخدام سلاسل اتصال 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 يعرض لك الرابط المباشر لصفحة إعدادات التطبيق في بوابة Azure.من المستكشف، افتح التكوين/database.php. هذا الملف هو ملف التكوين لاتصالات قاعدة البيانات وذاكرة التخزين المؤقت Redis.
ابحث عن الجزء الذي يعرف
mysqlالاتصال (الأسطر 46-64) واستبدلDB_HOSTDB_PORTDB_DATABASEDB_USERNAMEو و وDB_PASSWORDAZURE_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_HOSTREDIS_PASSWORDREDIS_PORTو وREDIS_CACHE_DBAzure_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.
ملاحظة
تذكر أن التغييرات التي أجريتها لم يتم نشرها بعد. تقوم بنشرها في نهاية الخطوة التالية.
تكوين إعدادات لارافيل في تطبيق الويب
من المستكشف، افتح 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.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
توليد مخطط قاعدة البيانات
باستخدام قاعدة بيانات 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 فقط بعد عمليات إعادة تشغيل التطبيق.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
استعرض التطبيق
في إخراج AZD، ابحث عن عنوان URL لتطبيقك وانتقل إليه في المستعرض. يبدو عنوان URL كما يلي في إخراج AZD:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <URL>أضف القليل من المهام إلى القائمة.
تهانينا، أنت تقوم بتشغيل تطبيق ويب في Azure App Service، مع اتصال آمن بقاعدة بيانات Azure ل MySQL.
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
دفق سجلات التشخيص
تلتقط Azure App Service جميع الرسائل التي تم تسجيلها في وحدة التحكم لمساعدتك في تشخيص المشكلات المتعلقة بالتطبيق الخاص بك. للراحة، قام قالب AZD بالفعل بتمكين التسجيل إلى نظام الملفات المحلي ويشحن السجلات إلى مساحة عمل Log Analytics.
يقوم نموذج التطبيق بإخراج رسائل سجل وحدة التحكم في كل نقطة من نقاط النهاية الخاصة به لتوضيح هذه الإمكانية. افتراضيا، وظيفة تسجيل السجلات في لارافيل، على سبيل المثال، 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>
هل تواجه مشكلات؟ تحقق من قسم استكشاف الأخطاء وإصلاحها.
تنظيف الموارد
لحذف كافة موارد Azure في بيئة النشر الحالية، قم بتشغيل azd down المطالبات واتبعها.
azd down
استكشاف الأخطاء وإصلاحها
أتلقى الخطأ أثناء عمليات ترحيل قاعدة البيانات php_network_getaddresses: getaddrinfo for mysqldb failed: No address associated with hostname...
يشير إلى أن متغيرات اتصال MySQL لم يتم تكوينها بشكل صحيح. تحقق من أن AZURE_MYSQL_ إعدادات التطبيق مضبوطة بشكل صحيح في Use Azure لسلاسل الاتصال في كود التطبيق.
أحصل على صفحة فارغة في المتصفح.
يشير إلى أنه لا يمكن ل App Service العثور على ملفات بدء PHP في /public. اتبع الخطوات في إعدادات إعداد لارافيل في تطبيق الويب.
أحصل على صفحة تصحيح الأخطاء في المتصفح قائلا 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_ إعدادات التطبيق مضبوطة بشكل صحيح في Use Azure لسلاسل الاتصال في كود التطبيق.
أحصل على صفحة تصحيح الأخطاء في المتصفح قائلا SQLSTATE[42S02]: Base table or view not found: 1146 Table 'XXXX-XXXXXXXXX-mysql-database.tasks' doesn't exist
وهذا يعني أنك لم تقم بتشغيل عمليات ترحيل قاعدة البيانات، أو أن عمليات ترحيل قاعدة البيانات لم تكن ناجحة. اتبع الخطوات في إنشاء مخطط قاعدة البيانات.
الأسئلة الشائعة
- كم يكلف هذا الإعداد؟
- كيف أعمل الاتصال بقاعدة بيانات 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؟
من خطوات بوابة Azure في Configure Laravel Variables، يمكنك التغيير 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)"
يمكنك أيضا فعل الشيء نفسه في بوابة Azure. لمزيد من المعلومات، راجع:
كيف يعمل تطوير التطبيقات المحلية مع إجراءات GitHub؟
خذ ملف سير العمل المولد تلقائيا من App Service كمثال. كل واحدة 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مكان إجراء التغييرات، لكنه غير مسموح له بإجراء التغييرات نيابة عنك. الأمر متروك لك لإضافة التغييرات المقترحة واختبارها.
المحتويات ذات الصلة
تقدم إلى البرنامج التعليمي التالي لمعرفة كيفية تأمين تطبيقك باستخدام مجال وشهادة مخصصين.
أو راجع هذا المصدر: