تشغيل وظائفك من ملف حزمة في Azure
في Azure، يمكنك تشغيل وظائفك مباشرة من ملف حزمة توزيع في تطبيق الوظائف. يتمثل الخيار الآخر في توزيع ملفاتك في دليل c:\home\site\wwwroot
(لنظام التشغيل Windows) أو /home/site/wwwroot
(لنظام التشغيل Linux) لتطبيق الوظائف الخاص بك.
توضح هذه المقالة فوائد تشغيل الوظائف الخاصة بك من حزمة. كما توضح كيفية تمكين هذه الوظيفة في تطبيق الوظائف الخاص بك.
فوائد التشغيل من ملف حزمة
هناك العديد من الفوائد لتشغيل الوظائف من ملف حزمة:
- يقلل من مخاطر مشكلات تأمين نسخ الملفات.
- يمكن توزيعها في تطبيق إنتاج (مع إعادة التشغيل).
- التحقق من الملفات التي يتم تشغيلها في تطبيقك.
- تحسين أداء عمليات توزيع Azure Resource Manager.
- يقلل من أوقات البدء الباردة، خاصة بالنسبة لوظائف JavaScript مع أشجار حزمة npm الكبيرة.
لمزيد من المعلومات، راجع هذا الإعلان.
تمكين الوظائف للتشغيل من حزمة
لتمكين تشغيل تطبيق الوظائف من حزمة، أضف 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
للتوزيع إلى نظام تشغيل معين وخطة استضافة:
خطة الاستضافة | Windows | Linux |
---|---|---|
استهلاك | يوصى بـ 1 بشدة. |
يتم دعم <URL> فقط. |
قسط | يوصى بـ 1 . |
يوصى بـ 1 . |
مكرس | يوصى بـ 1 . |
يوصى بـ 1 . |
اعتبارات عامة
- يجب أن يكون ملف الحزمة بتنسيق zip. تنسيقات Tar وgzip غير مدعومة.
- يوصى بـ توزيع Zip.
- عند توزيع تطبيق الوظائف الخاص بك إلى Windows، يجب تعيين
WEBSITE_RUN_FROM_PACKAGE
إلى1
ونشره بتوزيع الرمز البريدي. - عند التشغيل من حزمة،
wwwroot
يكون المجلد للقراءة فقط وتتلقى خطأ إذا قمت بكتابة ملفات إلى هذا الدليل. كما أن الملفات للقراءة فقط في مدخل Microsoft Azure. - الحد الأقصى لحجم ملف حزمة التوزيع هو 1 غيغابايت.
- لا يمكنك استخدام ذاكرة التخزين المؤقت المحلية عند التشغيل من حزمة توزيع.
- إذا كان مشروعك بحاجة إلى استخدام البنية عن بعد، فلا تستخدم إعداد التطبيق
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 المضمنة أو أدوات الجهات الخارجية.
يجب أن يتضمن الأرشيف ملف 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 مع خطة استهلاك.
اعتبارات التوزيع من عنوان URL
- تواجه تطبيقات الوظائف التي تعمل على 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}
أو ما شابه ذلك.