خطأ استكشاف الأخطاء وإصلاحها: «وقت تشغيل دالات Azure غير قابل للوصول»

تساعدك هذه المقالة في استكشاف أخطاء سلسلة الأخطاء التالية التي تظهر في مدخل Azure:

«خطأ: وقت تشغيل دالات Azure غير قابل للوصول. انقر هنا للحصول على تفاصيل حول تكوين التخزين."

تحدث هذه المشكلة عندما لا يمكن بدء تشغيل وقت تشغيل الدالات. السبب الأكثر شيوعًا لهذا الأمر هو أن تطبيق الدالة فقد الوصول إلى حساب التخزين الخاص به. لمزيد من المعلومات، راجع متطلبات حساب التخزين.

يساعدك باقي هذه المقالة في استكشاف أخطاء أسباب معينة لهذا الخطأ وإصلاحها، بما في ذلك كيفية تحديد كل حالة وحلها.

تم حذف حساب التخزين

يتطلب كل تطبيق وظائف حساب تخزين للعمل. إذا تم حذف هذا الحساب، فلن تعمل الدالات الخاصة بك.

ابدأ بالبحث عن اسم حساب التخزين في إعدادات التطبيق لديك. إما AzureWebJobsStorage أو WEBSITE_CONTENTAZUREFILECONNECTIONSTRING يحتوي على اسم حساب التخزين الخاص بك كجزء من سلسلة الاتصال. لمزيد من المعلومات، راجع مرجع إعدادات التطبيق لدالات Azure.

ابحث عن حساب التخزين الخاص بك في مدخل Azure لمعرفة ما إذا كان لا يزال موجودًا. إذا تم حذفه، فأعد إنشاء حساب التخزين واستبدل سلاسل اتصال التخزين. يتم فقدان تعليمة الدالة البرمجية الخاصة بك، وتحتاج إلى إعادة نشرها.

تم حذف إعدادات تطبيق حساب التخزين

في الخطوة السابقة، إذا لم تتمكن من العثور على سلسلة اتصال حساب تخزين، فمن المحتمل أن يكون قد تم حذفه أو الكتابة فوقه. يحدث حذف إعدادات التطبيق الأكثر شيوعًا عند استخدام فتحات النشر أو البرامج النصية لـ Azure Resource Manager لتعيين إعدادات التطبيق.

إعدادات التطبيق المطلوبة

لمزيد من المعلومات، راجع مرجع إعدادات التطبيق لدالات Azure.

الإرشادات‬

  • لا تتحقق من إعداد الفتحة لأي من هذه الإعدادات. إذا قمت بتبديل فتحات النشر، فإن تطبيق الدالة يتعطل.
  • لا تقم بتعديل هذه الإعدادات كجزء من عمليات النشر التلقائية.
  • يتعين توفير هذه الإعدادات وأن تكون صالحة في وقت الإنشاء. يؤدي النشر التلقائي الذي لا يحتوي على هذه الإعدادات إلى تطبيق دالة لن يتم تشغيله، حتى إذا تمت إضافة الإعدادات لاحقًا.

بيانات اعتماد حساب التخزين غير صالحة

يتعين تحديث سلسلة اتصال حساب التخزين التي تمت مناقشتها مسبقًا إذا قمت بإعادة كتابة مفاتيح التخزين. لمزيد من المعلومات حول إدارة مفتاح التخزين، راجع إنشاء حساب تخزين Azure.

حساب التخزين غير قابل للوصول

يتعين أن يكون تطبيق الدالة قادرًا على الوصول إلى حساب التخزين. المشاكل الشائعة التي تمنع وصول تطبيق دالة إلى حساب تخزين هي:

حصة التنفيذ اليومية ممتلئة

إذا كان لديك حصة نسبية للتنفيذ اليومي تم تكوينها، يتم تعطيل تطبيق الدالة مؤقتًا، مما يؤدي إلى عدم توفر العديد من عناصر تحكم المدخل.

للتحقق من الحصة النسبية في مدخل Azure، حدد ميزات النظام الأساسي>إعدادات تطبيق الدالة في تطبيق الدالة لديك. إذا تجاوزت الحصة النسبية للاستخدام اليومي التي قمت بتعيينها، يتم عرض الرسالة التالية:

"وصل تطبيق الدالة إلى الحصة النسبية للاستخدام اليومي وتم إيقافه حتى الإطار الزمني التالي البالغ 24 ساعة."

لحل هذه المشكلة، قم بإزالة الحصة النسبية اليومية أو زيادتها، ثم أعد تشغيل التطبيق. وإلا، فإنه يتم حظر تنفيذ التطبيق الخاص بك حتى اليوم التالي.

التطبيق خلف جدار حماية

قد يكون تطبيق الدالة غير قابل للوصول لأي من الأسباب التالية:

يقوم مدخل Azure بإجراء مكالمات مباشرة إلى التطبيق قيد التشغيل لإحضار قائمة الدالات، كما يقوم بإجراء مكالمات HTTP إلى نقطة نهاية Kudu. لا تزال إعدادات مستوى النظام الأساسي ضمن علامة التبويب ميزات النظام الأساسي متوفرة.

للتحقق من تكوين ASE:

  1. انتقل إلى مجموعة أمان الشبكة (NSG) للشبكة الفرعية حيث يوجد ASE.
  2. تحقق من صحة القواعد الواردة للسماح بحركة المرور الواردة من IP العام للكمبيوتر الذي تقوم بالوصول إلى التطبيق من خلاله.

يمكنك أيضًا استخدام المدخل من كمبيوتر متصل بالشبكة الظاهرية التي تقوم بتشغيل التطبيق أو بجهاز ظاهري يعمل في الشبكة الظاهرية.

لمزيد من المعلومات حول تكوين قاعدة واردة، راجع قسم "مجموعات أمان الشبكة" لاعتبارات الشبكات لبيئة خدمة التطبيقات.

أخطاء الحاوية على Linux

بالنسبة لتطبيقات الوظائف التي تعمل على Linux في حاوية، يمكن أن يحدث الخطأ Azure Functions runtime is unreachable نتيجة للمشاكل في الحاوية. استخدم الإجراء التالي لمراجعة سجلات الحاوية للأخطاء:

  1. انتقل إلى نقطة نهاية Kudu لFunction App، والموجودة في https://<FUNCTION_APP>.scm.azurewebsites.net، حيث <FUNCTION_APP> هو اسم تطبيقك.

  2. نزل ملف سجلات Docker .zip وراجع المحتويات على الكمبيوتر المحلي.

  3. تحقق من وجود أي أخطاء في السجلات تشير إلى أن الحاوية غير قادرة على البدء بنجاح.

صورة الحاوية غير متوفرة

يمكن أن تحدث أخطاء عندما تكون صورة الحاوية التي يتم الرجوع إليها غير متوفرة أو تفشل في البدء بشكل صحيح. تحقق من وجود أي أخطاء في السجلات تشير إلى أن الحاوية غير قادرة على البدء بنجاح.

تحتاج إلى تصحيح أي أخطاء تمنع الحاوية من بدء تشغيل تطبيق الوظائف بشكل صحيح.

عندما لا يمكن العثور على صورة الحاوية، سترى خطأ manifest unknown في سجلات Docker. في هذه الحالة، يمكنك استخدام أوامر Azure CLI الموثقة في كيفية استهداف إصدارات وقت تشغيل Azure Functions لتغيير صورة الحاوية كمرجع. إذا قمت بتوزيع صورة حاوية مخصصة، فستحتاج إلى إصلاح الصورة وإعادة توزيع الإصدار المحدث إلى السجل المشار إليه.

تحتوي حاوية التطبيق على منافذ متعارضة

قد يكون تطبيق الوظائف في حالة عدم استجابة بسبب تعارض تعيين المنفذ عند بدء التشغيل. قد يحدث هذا في الحالات التالية:

  • تحتوي الحاوية الخاصة بك على خدمات منفصلة تعمل حيث تقوم خدمة واحدة أو أكثر بالربط بنفس المنفذ مثل تطبيق الوظائف.
  • لقد أضفت Azure Hybrid Connection الذي يشارك نفس قيمة المنفذ مثل تطبيق الوظائف.

بشكل افتراضي، تستخدم الحاوية التي يتم تشغيل تطبيق الوظائف فيها المنفذ :80. عندما تحاول الخدمات الأخرى في نفس الحاوية أيضًا استخدام المنفذ :80، يمكن أن يفشل تطبيق الوظائف في البدء. إذا كانت سجلاتك تعرض تعارضات المنافذ، فقم بتغيير المنافذ الافتراضية.

تضارب معرف المضيف

بدءاً من الإصدار 3.x من وقت تشغيل Functions، تم اكتشاف تضارب معرف المضيف والتسجيل كتحذير. في الإصدار 4.x، يتم تسجيل خطأ ويتم إيقاف المضيف. إذا تعذر بدء وقت التشغيل لتطبيق الوظائف، فراجع السجلات. إذا كان هناك تحذير أو خطأ حول تضارب معرف المضيف، فاتبع خطوات التخفيف من المخاطر في اعتبارات معرف المضيف.

إعدادات التطبيق للقراءة فقط

يمكن أن يؤدي تغيير أي إعدادات تطبيق App Service للقراءة فقطإلى وضع تطبيق الوظائف في حالة لا يمكن الوصول إليها.

تجاوزات المصادقة ASP.NET

ينطبق فقط على تطبيقات C# التي تعمل قيد المعالجة مع مضيف الوظائف.

يمكن أن يتجاوز تكوين مصادقة ASP.NET في فئة بدء تشغيل Functions الخدمات المطلوبة لمدخل Azure للاتصال بالمضيف. يتضمن ذلك، على سبيل المثال لا الحصر، أي مكالمات إلى AddAuthentication(). إذا تم تجاوز خدمات مصادقة المضيف ولم يتمكن المدخل من الاتصال بالمضيف، فإنه يعتبر التطبيق غير قابل للوصول. قد تؤدي هذه المشكلة إلى أخطاء مثل: No authentication handler is registered for the scheme 'ArmToken'..

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

تعرّف على مراقبة تطبيقات الدالات: