كيفية استهداف إصدارات وقت تشغيل دالات Azure

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

الاعتبارات

ضع هذه الاعتبارات في اعتبارك عند استهداف نسخة تشغيل محددة:

  • خطة استهلاك المرن تعمل فقط على الإصدار 4.x من وقت التشغيل. نظرا لأن خطة Flex Consumption لا تدعم FUNCTIONS_EXTENSION_VERSION إعداد التطبيق، لا يمكن لتطبيقك استهداف نسخة تشغيل محددة عند تشغيله في هذه الخطة.
  • تعتمد الطريقة التي تستهدف بها إصدارا معينا على ما إذا كنت تقوم بتشغيل Windows أو Linux.
  • هذه المقالة مخصصة لنظام ويندوز أو لينكس. اختر نظام التشغيل في أعلى المقالة.
  • عندما يكون ذلك ممكنا، شغل تطبيقك دائما على أحدث إصدار مدعوم من وقت التشغيل. ثبت تطبيقك على نسخة معينة فقط إذا طلب منك ذلك بسبب مشكلة في أحدث إصدار. انتقل دائما إلى أحدث إصدار وقت تشغيل بمجرد تشغيل الوظائف بشكل صحيح.
  • أثناء التطوير المحلي، يجب أن يتطابق الإصدار المثبت من دالات Azure Core Tools مع إصدار وقت التشغيل الرئيسي المستخدم من قبل تطبيق الوظائف في Azure. لمزيد من المعلومات، راجع إصدارات Core Tools.

تحديث إصدار وقت التشغيل

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

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

لتحديد إصدار وقت التشغيل الحالي، راجع عرض إصدار وقت التشغيل الحالي.

عرض إصدار وقت التشغيل الحالي

يمكنك عرض إصدار وقت التشغيل الحالي لتطبيق الوظائف بإحدى الطرق التالية:

لعرض وتحديث إصدار وقت التشغيل المستخدم حاليا من قبل تطبيق الوظائف، اتبع الخطوات التالية:

  1. في مدخل Microsoft Azure، استعرض للوصول إلى تطبيق الوظائف.

  2. قم بتوسيع الإعدادات، ثم حدد التكوين.

  3. في علامة التبويب إعدادات وقت تشغيل الدالة ، لاحظ إصدار وقت التشغيل. في هذا المثال، يتم تعيين الإصدار إلى ~4.

    لقطة شاشة توضح كيفية عرض إصدار وقت التشغيل.

تثبيت بإصدار معين

تتيح لك دالات Azure استخدام FUNCTIONS_EXTENSION_VERSION إعداد التطبيق لاستهداف إصدار وقت التشغيل المستخدم من قبل تطبيق دالة معين. إذا حددت فقط النسخة الرئيسية (~4)، فإن تطبيق الوظائف يقوم تلقائيا بتحديث الإصدارات الصغيرة الجديدة من وقت التشغيل عند توفره. تحديثات الإصدارات الصغيرة تلقائية لأن الإصدارات الجديدة من غير المرجح أن تضيف تغييرات تعطل وظائفك.

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

تثبيت نسخة تشغيل محددة يعيد تشغيل تطبيق الوظيفة الخاص بك.

عندما تحدد نسخة ثانوية معينة (مثل 4.0.12345) في FUNCTIONS_EXTENSION_VERSION، فإنك تثبت تطبيق الدالة على تلك النسخة المحددة من وقت التشغيل حتى تختار صراحة العودة إلى تحديثات الإصدار التلقائية. ثبت فقط على نسخة ثانوية محددة لفترة كافية لحل أي مشاكل في تطبيق الوظائف تمنعك من استهداف النسخة الرئيسية. تتم إزالة الإصدارات الثانوية القديمة بانتظام من بيئة الإنتاج. عندما يتم تثبيت تطبيق الوظيفة على نسخة ثانوية تزال لاحقا، يعمل تطبيق الوظيفة على أقرب نسخة موجودة بدلا من النسخة المضبوطة في FUNCTIONS_EXTENSION_VERSION. إعلانات خدمة التطبيقات تعلن عن إزالة الإصدارات الطفيفة.

إشعار

عند محاولة النشر من Visual Studio إلى تطبيق مثبت على إصدار ثانوي معين من وقت التشغيل، يطالبك مربع الحوار بالتحديث إلى أحدث إصدار أو إلغاء النشر. لتجنب هذا الفحص عندما يجب استخدام إصدار ثانوي معين، أضف الخاصية <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> في الملف..csproj

استخدم إحدى هذه الطرق لتثبيت تطبيقك مؤقتا بإصدار معين من وقت التشغيل:

لعرض وتحديث إصدار وقت التشغيل المستخدم حاليا من قبل تطبيق الوظائف، اتبع الخطوات التالية:

  1. في مدخل Microsoft Azure، استعرض للوصول إلى تطبيق الوظائف.

  2. قم بتوسيع الإعدادات، ثم حدد التكوين.

  3. في علامة التبويب إعدادات وقت تشغيل الدالة ، لاحظ إصدار وقت التشغيل. في هذا المثال، يتم تعيين الإصدار إلى ~4.

    لقطة شاشة توضح كيفية عرض إصدار وقت التشغيل.

  1. لتثبيت تطبيقك بإصدار ثانوي معين، في الجزء الأيمن، قم بتوسيع الإعدادات، ثم حدد متغيرات البيئة.

  2. من علامة التبويب إعدادات التطبيق، حدد FUNCTIONS_EXTENSION_VERSION، وغير القيمة إلى الإصدار الثانوي المطلوب، ثم حدد تطبيق.

  3. حدد تطبيق، ثم حدد تأكيد لتطبيق التغييرات وإعادة تشغيل التطبيق.

تتم إعادة تشغيل تطبيق الوظيفة بعد إجراء التغيير على إعداد التطبيق.

لتثبيت تطبيق الوظائف الخاص بك على نسخة تشغيل محددة على لينكس، قم بتعيين رابط صورة أساسي خاص بالإصدار في linuxFxVersion إعداد الموقع في الصيغة DOCKER|<PINNED_VERSION_IMAGE_URI>.

هام

لا تتلقى تطبيقات الوظائف التي تم تثبيتها على Linux تحديثات منتظمة للأمان ووظائف المضيف. استخدم الإعداد وقيمة قياسية FUNCTIONS_EXTENSION_VERSION للغتك وإصدارك، مثل linuxFxVersion، Python|3.12 ما لم ينصح به أحد محترفي الدعم. للحصول على قيم صالحة، راجع linuxFxVersion المقالة المرجعية.

التثبيت في وقت تشغيل معين غير مدعوم حاليا لتطبيقات وظائف Linux التي تعمل في خطة Consumption.

المثال التالي يوضح القيمة linuxFxVersion المطلوبة لتثبيت تطبيق Node.js 22 وظيفة على نسخة تشغيل محددة من 4.14.0.3:

DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node22

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

استخدم أوامر Azure CLI التالية لعرض وتعيين linuxFxVersion. لا يمكنك حاليا تعيين linuxFxVersion في المدخل أو باستخدام Azure PowerShell:

  • لعرض إصدار وقت التشغيل الحالي، استخدم الأمر az functionapp config show :

    az functionapp config show --name <function_app> \
    --resource-group <my_resource_group> --query 'linuxFxVersion' -o tsv
    

    في هذه التعليمة البرمجية، استبدل <function_app> باسم تطبيق الوظائف الخاص بك. أيضا، استبدل <my_resource_group> باسم مجموعة الموارد لتطبيق الوظائف الخاص بك. يتم إرجاع القيمة الحالية ل linuxFxVersion .

  • لتحديث linuxFxVersion الإعداد في تطبيق الوظائف، استخدم الأمر az functionapp config set :

    az functionapp config set --name <FUNCTION_APP> \
    --resource-group <RESOURCE_GROUP> \
    --linux-fx-version <LINUX_FX_VERSION>
    

    استبدل <FUNCTION_APP> باسم تطبيق الدالة الخاص بك. أيضا، استبدل <RESOURCE_GROUP> باسم مجموعة الموارد لتطبيق الوظائف الخاص بك. وأخيرا، استبدل <LINUX_FX_VERSION> بقيمة صورة معينة يوفرها لك أحد محترفي الدعم.

يمكنك تشغيل هذه الأوامر من Azure Cloud Shell عن طريق اختيار Open Cloud Shell في أمثلة التعليمات البرمجية السابقة. يمكنك أيضا استخدام Azure CLI محليا لتنفيذ هذا الأمر بعد التنفيذ az login لتسجيل الدخول.

يتم إعادة تشغيل تطبيق الوظيفة بعد إجراء التغيير على تكوين الموقع.

قم بتحديث صورة لينكس المدارة

ينطبق هذا القسم فقط على تطبيقات Python 3.11 وJava 8 أو 11 أو 17 الموجودة على خطط Linux Elastic Premium أو Dedicated (App Service) التي تستخدم صورة مدارة من Debian Bullseye. إذا لم يستوفي تطبيقك جميع هذه الشروط، فلا داعي لاتباع هذا الإجراء.

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

يختار هذا التحديث توزيع لينكس لإصدار اللغة الحالي باستخدام قيمة من ثلاثة أجزاء linuxFxVersion . لا يثبت مضيف الوظائف على صورة محددة DOCKER|<IMAGE_URI> .

اختر شخصا من محبي الكتب أو قيمة النبيلة linuxFxVersion

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

  1. فكر في تحديث التطبيق إلى نسخة لغة مدعومة أحدث. بعد تحديث اللغة، يستخدم التطبيق الصورة المدارة الافتراضية الحالية لتلك النسخة.

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

    إصدار اللغة قيمة ديبيان بولزآي التوزيع الأحدث قيمة الصورة الأحدث
    Python 3.11 Python\|3.11\|2.0 ديبيان بوبوورم Python\|3.11\|3.0
    جافا 8 Java\|8\|2.0 أوبونتو نوبل Java\|8\|4.0
    جافا 11 Java\|11\|2.0 أوبونتو نوبل Java\|11\|4.0
    جافا 17 Java\|17\|2.0 أوبونتو نوبل Java\|17\|4.0

    تختار هذه القيم المكونة من ثلاثة أجزاء صورة لينكس المدارة صراحة لهذه الصور من عصر بولزآي. لا يتم إرجاعهم من قبل az functionapp list-runtimes القيادة.

اختبر صورة لينكس المدارة الأحدث

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

  1. أنشئ تطبيق اختبار منفصل أو أنشئ خانة نشر.

  2. قم بنشر نفس الكود والتكوين الذي يستخدمه تطبيق الإنتاج في تطبيق الاختبار أو الفتحة.

  3. حدد قيمة الصورة الجديدة باتباع الخطوات في تحديث قيمة الصورة. عند استخدام فتحة، قم بتضمينه --slot <SLOT_NAME> في كل أمر Azure CLI.

  4. استدعي كل وظيفة وتحقق من أن التطبيق يبدأ بنجاح، وأن المشغلات تعمل كما هو متوقع، وأن الاعتماديات الأصلية أو نظام التشغيل تحمل بشكل صحيح.

تحديث قيمة الصورة

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

  1. عرض القيمة الحالية linuxFxVersion :

    az functionapp config show --name <APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --query linuxFxVersion --output tsv
    

    هذا الأمر يرجع القيمة المخزنة في تكوين الموقع. قد تحتوي القيمة المرتجعة فقط على اللغة وإصدار اللغة، مثل Python|3.11، بدلا من القيمة الثلاثية التي تحدد توزيع لينكس. إذا لم تتضمن القيمة نسخة الصورة، اتبع الخطوات في قسم التحقق من توزيع لينكس للتأكد من أن التطبيق يستخدم حاليا Debian Bullseye.

  2. قم بتعيين linuxFxVersion قيمة الصورة الأحدث:

    az functionapp config set --name <APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --linux-fx-version "<LANGUAGE|VERSION|IMAGE_VERSION>"
    

    بالنسبة ل Python 3.11 على Debian Bookworm، استخدم Python|3.11|3.0. بالنسبة ل Java على أوبونتو نوبل، استخدم Java|8|4.0، Java|11|4.0، أو Java|17|4.0.

  3. انتظر حتى يعاد تشغيل التطبيق.

تحقق من توزيع لينكس

تحقق من القيمة المكونة وتوزيع لينكس الذي يشغل تطبيقك.

  1. أكد القيمة المحدثة linuxFxVersion :

    az functionapp config show --name <APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --query linuxFxVersion --output tsv
    

    لأنك تحدد صراحة قيمة ثلاثية الأجزاء، فإن هذا الأمر يعيد بالضبط قيمة Bookworm أو Noble التي اخترتها.

  2. افتح موقع Kudu الخاص بالتطبيق على https://<APP_NAME>.scm.azurewebsites.net.

  3. اختر البيئة وراجعها KUDU_ENV، أو افتح جلسة SSH ونفذ:

    cat /etc/os-release
    
  4. تأكد من أن المخرج يحدد Debian Bookworm ل Python 3.11 أو Ubuntu Noble ل Java 8 أو 11 أو 17.

  5. استدعي كل وظيفة وتأكد من أن المحفزات والتبعيات تستمر في العمل كما هو متوقع.

تراجع إلى الوراء في تحديث صور لينكس المدارة

إذا تسببت الصورة المحدثة في مشكلة التوافق، قم باستعادة القيمة السابقة linuxFxVersion مؤقتا أثناء إصلاح المشكلة.

التحذير

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

  1. من الجدول في خيار اختيار دودة كتب أو قيمة نبيلةlinuxFxVersion، ابحث عن قيمة ديبيان بولزآي لنسختك اللغوية.

  2. اضبط linuxFxVersion على قيمة Bullseye:

    az functionapp config set --name <APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --linux-fx-version "<BULLSEYE_LINUX_FX_VERSION>"
    
  3. انتظر حتى يعيد تشغيل التطبيق، ثم كرر عمليات الفحص في قسم التحقق من توزيع لينكس.

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