ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في Azure، يمكنك تشغيل وظائفك مباشرة من ملف حزمة توزيع في تطبيق الوظائف. يتمثل الخيار الآخر في توزيع ملفاتك في دليل c:\home\site\wwwroot
(لنظام التشغيل Windows) أو /home/site/wwwroot
(لنظام التشغيل Linux) لتطبيق الوظائف الخاص بك.
توضح هذه المقالة فوائد تشغيل الوظائف الخاصة بك من حزمة. كما توضح كيفية تمكين هذه الوظيفة في تطبيق الوظائف الخاص بك.
فوائد التشغيل من ملف حزمة
هناك العديد من الفوائد لتشغيل الوظائف من ملف حزمة:
- يقلل من مخاطر مشكلات تأمين نسخ الملفات.
- يمكن توزيعها في تطبيق إنتاج (مع إعادة التشغيل).
- التحقق من الملفات التي يتم تشغيلها في تطبيقك.
- تحسين أداء عمليات توزيع Azure Resource Manager.
- يقلل من أوقات البدء الباردة، خاصة بالنسبة لوظائف JavaScript مع أشجار حزمة npm الكبيرة.
لمزيد من المعلومات، راجع هذا الإعلان.
تمكين الوظائف للتشغيل من حزمة
تعمل تطبيقات الوظائف على خطة استضافة Flex Consumption من حزمة بشكل افتراضي. لا يلزم إجراء تكوين خاص.
لتمكين تشغيل تطبيق الوظائف من حزمة على خطط استضافة Consumption و Elastic Premium و Dedicated (App Service)، أضف WEBSITE_RUN_FROM_PACKAGE
إعداد تطبيق إلى تطبيق الوظائف.
WEBSITE_RUN_FROM_PACKAGE
يمكن أن يحتوي إعداد التطبيق على إحدى القيم التالية:
قيمة | الوصف |
---|---|
1 |
تشير إلى أن تطبيق الوظائف يعمل من ملف حزمة محلي تم نشره في المجلد c:\home\data\SitePackages (لنظام التشغيل Windows) أو /home/data/SitePackages (لنظام التشغيل Linux) لتطبيق الوظائف الخاص بك. |
<URL> |
تضبط عنوان URL ذي الموقع البعيد لملف الحزمة المحدد الذي تريد تشغيله. مطلوب لتطبيقات الوظائف التي تعمل على Linux في خطة الاستهلاك. |
يشير الجدول التالي إلى القيم الموصى بها WEBSITE_RUN_FROM_PACKAGE
للتوزيع إلى نظام تشغيل معين وخطة استضافة:
خطة الاستضافة | بالنسبة لنظام التشغيل | Linux |
---|---|---|
استهلاك | يوصى بـ 1 بشدة. |
يتم دعم <URL> فقط. |
قسط | يوصى بـ 1 . |
يوصى بـ 1 . |
مكرس | يوصى بـ 1 . |
يوصى بـ 1 . |
اعتبارات عامة
- لا تقم بإضافة
WEBSITE_RUN_FROM_PACKAGE
إعداد التطبيق إلى التطبيقات على خطة Flex Consumption . - يجب أن يكون ملف الحزمة بتنسيق zip. تنسيقات Tar وgzip غير مدعومة.
- يوصى بـ توزيع Zip.
- عند توزيع تطبيق الوظائف الخاص بك إلى Windows، يجب تعيين
WEBSITE_RUN_FROM_PACKAGE
إلى1
ونشره بتوزيع الرمز البريدي. - عند التشغيل من حزمة،
wwwroot
يكون المجلد للقراءة فقط وتتلقى خطأ إذا قمت بكتابة ملفات إلى هذا الدليل. كما أن الملفات للقراءة فقط في مدخل Microsoft Azure. - الحد الأقصى لحجم ملف حزمة التوزيع هو 1 غيغابايت.
- يستخدم التوزيع تخزينا مؤقتا عند فك حزم ملفات المشروع. وهذا يعني أن تطبيق الوظائف الخاص بك يجب أن يحتوي على مساحة تخزين مؤقتة كافية للاحتفاظ بمحتويات الحزمة الخاصة بك. ضع في اعتبارك أن حد التخزين المؤقت لخطة الاستهلاك هو 500 ميغابايت لكل خطة. للتعرف على كيفية استكشاف المشكلات المتعلقة بالتخزين المؤقت وإصلاحها، راجع كيفية استكشاف أخطاء التخزين المؤقت وإصلاحها على Azure App Service.
- لا يمكنك استخدام ذاكرة التخزين المؤقت المحلية عند التشغيل من حزمة توزيع.
- إذا كان مشروعك بحاجة إلى استخدام البنية عن بعد، فلا تستخدم إعداد التطبيق
WEBSITE_RUN_FROM_PACKAGE
. بدلا من ذلك، أضفSCM_DO_BUILD_DURING_DEPLOYMENT=true
إعداد تطبيق تخصيص التوزيع. بالنسبة إلى نظام التشغيل Linux، أضف الإعدادENABLE_ORYX_BUILD=true
أيضاً. لمزيد من المعلومات، راجع Remote build.
إشعار
WEBSITE_RUN_FROM_PACKAGE
لا يعمل إعداد التطبيق مع MSDeploy كما هو موضح في MSDeploy VS. ZipDeploy. ستتلقى خطأ أثناء النشر، مثل ARM-MSDeploy Deploy Failed
. لحل هذا الخطأ، قم بالتغيير /MSDeploy
إلى /ZipDeploy
.
إضافة إعداد WEBSITE_RUN_FROM_PACKAGE
توجد عدة طرق يمكنك من خلالها إضافة إعدادات تطبيق الوظائف وتحديثها وحذفها:
تتطلب التغييرات في إعدادات تطبيق الوظائف إعادة تشغيل تطبيق الوظائف.
إنشاء أرشيف zip
يجب أن يحتوي أرشيف zip الذي تنشره على جميع الملفات اللازمة لتشغيل تطبيق الوظائف. يمكنك إنشاء أرشيف مضغوط يدويا من محتويات مجلد مشروع Functions باستخدام وظيفة ضغط .zip المضمنة أو أدوات غير تابعة ل Microsoft.
يجب أن يتضمن الأرشيف ملف host.json في جذر المجلد المستخرج. ينشئ مكدس اللغة المحدد لتطبيق الوظائف متطلبات أخرى:
هام
بالنسبة للغات التي تنشئ إخراجا مجمعا للتوزيع، تأكد من ضغط محتويات مجلد الإخراج الذي تخطط لنشره وليس مجلد المشروع بأكمله. عندما تستخرج الدالات محتويات أرشيف zip، host.json
يجب أن يكون الملف موجودا في جذر الحزمة.
استخدام WEBSITE_RUN_FROM_PACKAGE = 1
يوفر هذا القسم معلومات حول كيفية تشغيل تطبيق الوظائف من ملف حزمة محلي.
اعتبارات التوزيع من حزمة في الموقع
- استخدام حزمة في الموقع هو الخيار الموصى به للتشغيل من حزمة التوزيع، إلا عند التشغيل على Linux المستضاف في خطة الاستهلاك.
- توزيع Zip هو الطريقة الموصى بها لتحميل حزمة توزيع إلى موقعك.
- عند عدم استخدام نشر zip، تأكد من أن المجلد
c:\home\data\SitePackages
(لنظام التشغيل Windows) أو/home/data/SitePackages
(لنظام التشغيل Linux) يحتوي على ملف يسمىpackagename.txt
. يحتوي هذا الملف فقط على اسم ملف الحزمة الموجود في هذا المجلد الذي يعمل حالياً، دون أي مسافة.
التكامل مع توزيع الرمز البريدي
توزيع Zip هو ميزة من ميزات Azure App Service التي تتيح لك نشر مشروع تطبيق الوظائف إلى wwwroot
الدليل. يتم حزم المشروع كملف توزيع .zip. يمكن استخدام واجهات برمجة التطبيقات نفسها لتوزيع حزمتك إلى المجلد c:\home\data\SitePackages
(لنظام التشغيل Windows) أو /home/data/SitePackages
(لنظام التشغيل Linux).
عند تعيين WEBSITE_RUN_FROM_PACKAGE
قيمة إعداد التطبيق إلى 1
، تنسخ واجهات برمجة التطبيقات لتوزيع zip الحزمة الخاصة بك إلى c:\home\data\SitePackages
المجلد (Windows) أو /home/data/SitePackages
(Linux) بدلا من استخراج الملفات إلى c:\home\site\wwwroot
(Windows) أو /home/site/wwwroot
(Linux). كما أنه ينشئ الملف packagename.txt
. بعد إعادة تشغيل تطبيق الوظائف تلقائيا، يتم تحميل الحزمة إلى wwwroot
كنظام ملفات للقراءة فقط. لمزيد من المعلومات حول توزيع الرمز البريدي، راجع توزيع الرمز البريدي لـ Azure Functions.
إشعار
عند حدوث توزيع، يتم تشغيل إعادة تشغيل تطبيق الوظائف. يتم إنهاء عمليات تنفيذ الوظائف التي تعمل حالياً أثناء التوزيع. للحصول على معلومات حول كيفية كتابة دالات عديمة الحالة ودفاعية، قم بتعيين وظائف الكتابة لتكون عديمة الحالة.
استخدام WEBSITE_RUN_FROM_PACKAGE = URL
يوفر هذا القسم معلومات حول كيفية تشغيل تطبيق الوظائف الخاص بك من حزمة تم توزيعها على نقطة نهاية عنوان URL. هذا الخيار هو الخيار الوحيد المدعوم للتشغيل من حزمة مستضافة على Linux مع خطة استهلاك. هذا الخيار غير مدعوم في خطة استهلاك Flex .
اعتبارات التوزيع من عنوان URL
- لا تقم بتعيين
WEBSITE_RUN_FROM_PACKAGE = <URL>
في التطبيقات على خطة استهلاك Flex . هذا الخيار غير معتمد. - تواجه تطبيقات الوظائف التي تعمل على Windows زيادة طفيفة في وقت البدء البارد عند نشر حزمة التطبيق إلى نقطة نهاية عنوان URL عبر
WEBSITE_RUN_FROM_PACKAGE = <URL>
. - عند تحديد عنوان URL، يجب أيضاً مزامنة المشغلات يدوياً بعد نشر حزمة محدثة.
- يجب أن يكون لوقت تشغيل الوظائف أذونات للوصول إلى عنوان URL للحزمة.
- لا تنشر الحزمة الخاصة بك إلى Azure Blob Storage ككائن ثنائي كبير الحجم عام. بدلا من ذلك، استخدم حاوية خاصة مع توقيع وصول مشترك (SAS) أو استخدم هوية مدارة لتمكين وقت تشغيل الوظائف للوصول إلى الحزمة.
- يجب الاحتفاظ بأي عناوين URL ل SAS مستخدمة للنشر. عند انتهاء صلاحية SAS، لا يمكن نشر الحزمة. في هذه الحالة، يجب إنشاء SAS جديد وتحديث الإعداد في تطبيق الوظائف. يمكنك التخلص من عبء الإدارة هذا باستخدام هوية مدارة.
- عند التشغيل على الخطة المميزة، تأكد من التخلص من حالات التشغيل العادي.
- عند تشغيل خطة مخصصة، تأكد من تمكين Always On.
- يمكنك استخدام Azure Storage Explorer لتحميل ملفات الحزمة إلى حاويات الكائن الثنائي كبير الحجم في حساب التخزين الخاص بك.
تحميل حزمة يدوياً إلى مخزن الكائنات الثنائية كبيرة الحجم
لتوزيع حزمة مضغوطة عند استخدام خيار URL، يجب إنشاء حزمة توزيع مضغوطة .zip وتحميلها إلى الوجهة. يتم نشر الإجراء التالي في حاوية في Blob Storage:
إنشاء حزمة .zip لمشروعك باستخدام الأداة المساعدة التي تختارها.
في مدخل Microsoft Azure، ابحث عن اسم حساب التخزين الخاص بك أو استعرض بحثا عنه في قائمة حسابات التخزين.
في حساب التخزين، حدد الحاويات ضمن تخزين البيانات.
حدد + الحاوية لإنشاء حاوية Blob Storage جديدة لحسابك.
في صفحة حاوية جديدة، قم بتوفير اسم (على سبيل المثال، عمليات النشر)، وتأكد من أن مستوى الوصول المجهول خاص، ثم حدد إنشاء.
حدد الحاوية التي أنشأتها، وحدد تحميل، واستعرض وصولا إلى موقع ملف .zip الذي أنشأته مع مشروعك، ثم حدد تحميل.
بعد اكتمال التحميل، اختر ملف كائن ثنائي كبير الحجم الذي تم تحميله، وانسخ عنوان URL. إذا كنت لا تستخدم هوية مدارة، فقد تحتاج إلى إنشاء عنوان URL SAS.
ابحث عن تطبيق الوظائف الخاص بك أو استعرضه في صفحة Function App.
في تطبيق الوظائف، قم بتوسيع الإعدادات، ثم حدد متغيرات البيئة.
في علامة التبويب إعدادات التطبيق، حدد + إضافة.
أدخل قيمة
WEBSITE_RUN_FROM_PACKAGE
الاسم، والصق عنوان URL لحزمتك في Blob Storage للقيمة.حدد تطبيق، ثم حدد تطبيق وتأكيدلحفظ الإعداد وإعادة تشغيل تطبيق الدالة.
يمكنك الآن تشغيل الدالة في Azure للتحقق من نجاح نشر حزمة التوزيع .zip الملف.
إحضار حزمة من Azure Blob Storage باستخدام هوية مدارة
يمكنك تكوين Azure Blob Storage لتخويل الطلبات باستخدام معرف Microsoft Entra. يعني هذا التكوين أنه بدلا من إنشاء مفتاح SAS مع انتهاء الصلاحية، يمكنك بدلا من ذلك الاعتماد على الهوية المدارة للتطبيق. بشكل افتراضي، يتم استخدام الهوية المعينة من قبل النظام للتطبيق. إذا كنت ترغب في تحديد هوية معيّنة من قبل المستخدم، يمكنك ضبط إعداد التطبيق WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID
على معرّف المورد لتلك الهوية. يمكن أن يقبل SystemAssigned
الإعداد أيضا كقيمة، وهو ما يعادل حذف الإعداد.
لتمكين إحضار الحزمة باستخدام الهوية:
تأكد من تكوين الكائن الثنائي كبير الحجم للوصول الخاص.
امنح الهوية دور قارئ بيانات كائن ثنائي كبير الحجم للتخزين مع نطاق عبر الكائن الثنائي كبير الحجم للحزمة. راجع تعيين دور Azure للوصول إلى بيانات الكائن الثنائي كبير الحجم للحصول على تفاصيل حول إنشاء تعيين الدور.
قم بتعيين إعداد التطبيق
WEBSITE_RUN_FROM_PACKAGE
إلى عنوان URL للكائن الثنائي كبير الحجم للحزمة. عادة ما يكون عنوان URL هذا من النموذجhttps://{storage-account-name}.blob.core.windows.net/{container-name}/{path-to-package}
أو ما شابه ذلك.إذا كنت ترغب في تحديد هوية معيّنة من قبل المستخدم، يمكنك ضبط إعداد التطبيق
WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID
على معرّف المورد لتلك الهوية. يمكن أن يقبل الإعداد أيضا "SystemAssigned" كقيمة، على الرغم من أن هذا هو نفس حذف الإعداد تماما. معرف المورد هو تمثيل قياسي لمورد في Azure. بالنسبة للهوية المدارة المعينة من قبل المستخدم، سيكون/subscriptions/subid/resourcegroups/rg-name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name
ذلك . يمكن الحصول على معرف المورد للهوية المدارة المعينة من قبل المستخدم في الإعدادات ->Properties ->ID للهوية المدارة المعينة من قبل المستخدم.