البرنامج التعليمي: تشغيل وظيفة دفعية باستخدام دوال Azure
في هذا البرنامج التعليمي، ستتعلم كيفية تشغيل وظيفة Batch باستخدام Azure Functions. تتناول هذه المقالة مثالا يأخذ المستندات المضافة إلى حاوية كائن ثنائي كبير الحجم لتخزين Azure يطبق التعرف البصري على الأحرف (OCR) باستخدام Azure Batch. لتبسيط معالجة التعرف البصري على الحروف، يقوم هذا المثال بتكوين دالة Azure التي تقوم بتشغيل مهمة التعرف البصري على الحروف الدفعية في كل مرة تتم فيها إضافة ملف إلى حاوية الكائن الثنائي كبير الحجم. ستتعلم كيفية:
- استخدم مدخل Microsoft Azure لإنشاء تجمعات ومهام.
- إنشاء حاويات كائن ثنائي كبير الحجم وتوقيع وصول مشترك (SAS).
- إنشاء دالة Azure التي يتم تشغيلها باستخدام كائن ثنائي كبير الحجم.
- تحميل ملفات الإدخال إلى التخزين.
- مراقبة تنفيذ المهمة.
- استرداد ملفات الإخراج.
المتطلبات الأساسية
- حساب Azure باشتراك نشط. أنشئ حسابًا مجانًا.
- حساب Azure Batch وحساب Azure Storage مضمن. لمزيد من المعلومات حول كيفية إنشاء الحسابات وربطها، راجع إنشاء حساب Batch.
تسجيل الدخول إلى Azure
سجل الدخول إلى مدخل Azure.
إنشاء تجمع دفعي ووظيفة Batch باستخدام مدخل Microsoft Azure
في هذا القسم، يمكنك استخدام مدخل Microsoft Azure لإنشاء تجمع الدفعات ووظيفة Batch التي تقوم بتشغيل مهام التعرف البصري على الحروف.
قم بإنشاء تجمع
سجل الدخول إلى مدخل Microsoft Azure باستخدام بيانات اعتماد Azure.
قم بإنشاء تجمع عن طريق تحديد Pools على الجانب الأيسر من التنقل، ثم حدد الزر Add أعلى نموذج البحث.
- أدخل معرف التجمع. يسمي هذا المثال التجمع
ocr-pool
. - حدد Canonical ك Publisher.
- حدد 0001-com-ubuntu-server-jammyكعرض.
- حدد 22_04-lts ك Sku.
- اختر
Standard_F2s_v2 - 2 vCPUs, 2 GB Memory
كحجم الجهاز الظاهري في قسم حجم العقدة . - قم بتعيين الوضع في قسم Scale إلى Fixed، وأدخل 3 للعقد المخصصة المستهدفة.
- قم بتعيين مهمة البدء إلى تمكين مهمة البدء، وأدخل الأمر
/bin/bash -c "sudo update-locale LC_ALL=C.UTF-8 LANG=C.UTF-8; sudo apt-get update; sudo apt-get -y install ocrmypdf"
في سطر الأوامر. تأكد من تعيين مستوى الارتفاعكمستخدم تلقائي للتجمع، مسؤول، والذي يسمح لمهام البدء بتضمين الأوامر معsudo
. - حدد "OK".
- أدخل معرف التجمع. يسمي هذا المثال التجمع
قم بإنشاء وظيفة
- قم بإنشاء مهمة على التجمع عن طريق تحديد Jobs في شريط التنقل الأيسر، ثم اختر الزر Add أعلى نموذج البحث.
- أدخل معرف الوظيفة. يستخدم هذا المثال
ocr-job
. - حدد
ocr-pool
للتجمع الحالي، أو أيا كان الاسم الذي اخترته للتجمع الخاص بك. - حدد "OK".
- أدخل معرف الوظيفة. يستخدم هذا المثال
إنشاء حاويات لكائنات Blob الثنائية كبيرة الحجم
هنا يمكنك إنشاء حاويات كائن ثنائي كبير الحجم التي تخزن ملفات الإدخال والإخراج لوظيفة OCR Batch. في هذا المثال، حاوية الإدخال مسماة input
وهو حيث يتم تحميل كافة المستندات بدون OCR أولًا للمعالجة. حاوية الإخراج تسمى output
وهناك تكتب الوظيفة الدفعية المستندات التي تتم معالجتها من خلال OCR.
ابحث عن Storage accounts وحددها في مدخل Microsoft Azure.
اختر حساب التخزين المرتبط بحساب Batch الخاص بك.
حدد Containers من شريط التنقل الأيسر، وأنشئ حاويتين للكائنات الثنائية كبيرة الحجم (واحدة لملفات الإدخال، وواحدة لملفات الإخراج) باتباع الخطوات الواردة في إنشاء حاوية كائن ثنائي كبير الحجم.
قم بإنشاء توقيع وصول مشترك لحاوية الإخراج الخاصة بك عن طريق تحديد حاوية الإخراج، وفي صفحة Shared access tokens ، حدد Write في القائمة المنسدلة Permissions . لا توجد أذونات أخرى ضرورية.
حدد Generate SAS token and URL، وانسخ Blob SAS URL لاستخدامه لاحقا لدالتك.
إنشاء Azure Function
في هذا القسم، يمكنك إنشاء دالة Azure التي تقوم بتشغيل مهمة OCR Batch كلما تم تحميل ملف إلى حاوية الإدخال الخاصة بك.
اتبع الخطوات في إنشاء دالة التي تم تشغيلها بواسطة تخزين Azure Blob لإنشاء دالة.
- بالنسبة إلى runtime stack، اختر.NET. تستخدم دالة المثال هذه C# للاستفادة من Batch .NET SDK.
- في صفحة التخزين ، استخدم نفس حساب التخزين الذي قمت بربطه بحساب Batch الخاص بك.
- حدد Review + Create > Create.
لقطة الشاشة التالية صفحة Create Function App في علامة التبويب Basics باستخدام معلومات المثال.
في الدالة الخاصة بك، حدد Functions من شريط التنقل الأيسر وحدد Create.
في جزء Create function ، حدد Azure Blob Storage trigger.
أدخل اسما للدالة في دالة جديدة. في هذا المثال، الاسم هو OcrTrigger. أدخل المسار ك
input/{name}
، حيث الإدخال في اسم حاوية Blob.حدد Create.
بمجرد إنشاء الدالة التي تم تشغيلها بواسطة الكائن الكبير ثنائي الحجم، حدد Code + Test. استخدم
run.csx
وfunction.proj
من GitHub في الدالة. function.proj
غير موجودة بشكل افتراضي، لذا حدد زر Upload لتحميلها في مساحة عمل التطوير.-
run.csx
يتم تشغيلها عند إضافة كائن ثنائي كبير جديد إلى حاوية كائن ثنائي كبير الخاصة بالإدخال. -
function.proj
تسرد المكتبات الخارجية في التعليمات البرمجية للدالة الخاصة بك، على سبيل المثال، SDK .NET الدفعي.
-
تغيير قيم العنصر النائب للمتغيرات في
Run()
دالة run.csx
الملف لعكس بيانات اعتماد الدفعة والتخزين. يمكنك العثور على بيانات اعتماد حساب الدفعة والتخزين في مدخل Microsoft Azure في قسم المفاتيح في حساب Batch والتخزين الخاص بك.
تشغيل الدالة واسترداد النتائج
قم بتحميل أي أو كل الملفات الممسوحة ضوئيًا من الدليل input_files
على GitHub إلى حاوية الإدخال.
يمكنك اختبار الدالة من مدخل Microsoft Azure في صفحة Code + Test الخاصة بوظيفتك.
- حدد Test/run في صفحة Code + Test .
- أدخل مسار حاوية الإدخال في النص الأساسي في علامة التبويب Input .
- حدد تشغيل.
بعد بضع ثوانٍ، تتم إضافة الملف الذي تم تطبيق OCR عليه إلى حاوية الإخراج. تسجيل مخرجات المعلومات إلى النافذة السفلية. يصبح الملف بعد ذلك مرئيًا وقابلاً للاسترداد في Storage Explorer.
بدلا من ذلك، يمكنك العثور على معلومات السجل في صفحة Monitor :
2019-05-29T19:45:25.846 [Information] Creating job...
2019-05-29T19:45:25.847 [Information] Accessing input container <inputContainer>...
2019-05-29T19:45:25.847 [Information] Adding <fileName> as a resource file...
2019-05-29T19:45:25.848 [Information] Name of output text file: <outputTxtFile>
2019-05-29T19:45:25.848 [Information] Name of output PDF file: <outputPdfFile>
2019-05-29T19:45:26.200 [Information] Adding OCR task <taskID> for <fileName> <size of fileName>...
لتنزيل ملفات الإخراج إلى جهازك المحلي، انتقل إلى حاوية الإخراج في حساب التخزين الخاص بك. حدد المزيد من الخيارات على الملف الذي تريده، ثم حدد تنزيل.
تلميح
يمكن البحث عن الملفات التي تم تنزيلها إذا تم فتحها في قارئ PDF.
تنظيف الموارد
يتم تحصيل رسوم منك مقابل التجمع أثناء تشغيل العقد، حتى إذا لم تتم جدولة أي مهام. عندما لا تكون بحاجة إلى التجمع، احذفه من خلال الخطوات التالية:
- من صفحة Pools لحساب Batch الخاص بك، حدد المزيد من الخيارات على التجمع الخاص بك.
- حددحذف.
عند حذف التجمع، يتم حذف كافة إخراج المهام على العقد. ومع ذلك، تبقى ملفات الإخراج في حساب التخزين. عندما لا تكون هناك حاجة، يمكنك أيضًا حذف حساب الدفعة وحساب التخزين.
الخطوات التالية
لمزيد من الأمثلة على استخدام API.NET لجدولة ومعالجة أعباء العمل الدفعية، راجع العينات على GitHub.