البرنامج التعليمي: تشغيل وظيفة دفعية باستخدام دوال Azure

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

  • استخدم مدخل Microsoft Azure لإنشاء تجمعات ومهام.
  • إنشاء حاويات كائن ثنائي كبير الحجم وتوقيع وصول مشترك (SAS).
  • إنشاء دالة Azure التي يتم تشغيلها باستخدام كائن ثنائي كبير الحجم.
  • تحميل ملفات الإدخال إلى التخزين.
  • مراقبة تنفيذ المهمة.
  • استرداد ملفات الإخراج.

المتطلبات الأساسية

تسجيل الدخول إلى Azure

سجل الدخول إلى مدخل Azure.

إنشاء تجمع دفعي ووظيفة Batch باستخدام مدخل Microsoft Azure

في هذا القسم، يمكنك استخدام مدخل Microsoft Azure لإنشاء تجمع الدفعات ووظيفة Batch التي تقوم بتشغيل مهام التعرف البصري على الحروف.

قم بإنشاء تجمع

  1. سجل الدخول إلى مدخل Microsoft Azure باستخدام بيانات اعتماد Azure.

  2. قم بإنشاء تجمع عن طريق تحديد Pools على الجانب الأيسر من التنقل، ثم حدد الزر Add أعلى نموذج البحث.

    لقطة شاشة لصفحة Pools في حساب Batch الذي يبرز الزر Add.

    1. أدخل معرف التجمع. يسمي هذا المثال التجمع ocr-pool.
    2. حدد Canonical ك Publisher.
    3. حدد 0001-com-ubuntu-server-jammyكعرض.
    4. حدد 22_04-lts ك Sku.
    5. اختر Standard_F2s_v2 - 2 vCPUs, 2 GB Memoryكحجم الجهاز الظاهري في قسم حجم العقدة .
    6. قم بتعيين الوضع في قسم Scale إلى Fixed، وأدخل 3 للعقد المخصصة المستهدفة.
    7. قم بتعيين مهمة البدء إلى تمكين مهمة البدء، وأدخل الأمر /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.
    8. حدد "OK".

قم بإنشاء وظيفة

  1. قم بإنشاء مهمة على التجمع عن طريق تحديد Jobs في شريط التنقل الأيسر، ثم اختر الزر Add أعلى نموذج البحث.
    1. أدخل معرف الوظيفة. يستخدم هذا المثال ocr-job.
    2. حدد ocr-poolللتجمع الحالي، أو أيا كان الاسم الذي اخترته للتجمع الخاص بك.
    3. حدد "OK".

إنشاء حاويات لكائنات Blob الثنائية كبيرة الحجم

هنا يمكنك إنشاء حاويات كائن ثنائي كبير الحجم التي تخزن ملفات الإدخال والإخراج لوظيفة OCR Batch. في هذا المثال، حاوية الإدخال مسماة ⁧input⁩ وهو حيث يتم تحميل كافة المستندات بدون OCR أولًا للمعالجة. حاوية الإخراج تسمى ⁧output⁩ وهناك تكتب الوظيفة الدفعية المستندات التي تتم معالجتها من خلال OCR.

  1. ابحث عن Storage accounts وحددها في مدخل Microsoft Azure.

  2. اختر حساب التخزين المرتبط بحساب Batch الخاص بك.

  3. حدد Containers من شريط التنقل الأيسر، وأنشئ حاويتين للكائنات الثنائية كبيرة الحجم (واحدة لملفات الإدخال، وواحدة لملفات الإخراج) باتباع الخطوات الواردة في إنشاء حاوية كائن ثنائي كبير الحجم.

  4. قم بإنشاء توقيع وصول مشترك لحاوية الإخراج الخاصة بك عن طريق تحديد حاوية الإخراج، وفي صفحة Shared access tokens ، حدد Write في القائمة المنسدلة Permissions . لا توجد أذونات أخرى ضرورية.

  5. حدد Generate SAS token and URL، وانسخ Blob SAS URL لاستخدامه لاحقا لدالتك.

    لقطة شاشة لصفحة الرموز المميزة للوصول المشترك التي تبرز القائمة المنسدلة Permissions وزر Generate SAS token وURL.

إنشاء Azure Function

في هذا القسم، يمكنك إنشاء دالة Azure التي تقوم بتشغيل مهمة OCR Batch كلما تم تحميل ملف إلى حاوية الإدخال الخاصة بك.

  1. اتبع الخطوات في ⁧⁩إنشاء دالة التي تم تشغيلها بواسطة تخزين Azure Blob⁧⁩ لإنشاء دالة.

    1. بالنسبة إلى ⁧⁩runtime stack⁧⁩، اختر.NET. تستخدم دالة المثال هذه C# للاستفادة من Batch .NET SDK.
    2. في صفحة التخزين ، استخدم نفس حساب التخزين الذي قمت بربطه بحساب Batch الخاص بك.
    3. حدد Review + Create > Create.

    لقطة الشاشة التالية صفحة Create Function App في علامة التبويب Basics باستخدام معلومات المثال.

    لقطة شاشة لصفحة Create Function App في علامة التبويب Basics باستخدام معلومات المثال.

  2. في الدالة الخاصة بك، حدد Functions من شريط التنقل الأيسر وحدد Create.

  3. في جزء Create function ، حدد Azure Blob Storage trigger.

  4. أدخل اسما للدالة في دالة جديدة. في هذا المثال، الاسم هو OcrTrigger. أدخل المسار ك input/{name}، حيث الإدخال في اسم حاوية Blob.

  5. حدد Create.

    لقطة شاشة لجزء Create Function الذي يسلط الضوء على خيار مشغل Azure Blob Storage وحقول الوظائف والمسار الجديدة.

  6. بمجرد إنشاء الدالة التي تم تشغيلها بواسطة الكائن الكبير ثنائي الحجم، حدد ⁧⁩Code + Test⁧⁩. استخدم ⁧⁩⁧run.csx⁩⁧⁩ و⁧⁩⁧⁩⁧function.proj⁩ من GitHub في الدالة. ⁧function.proj⁩ غير موجودة بشكل افتراضي، لذا حدد زر ⁧⁩Upload⁧⁩ لتحميلها في مساحة عمل التطوير.

    • run.csx⁩ يتم تشغيلها عند إضافة كائن ثنائي كبير جديد إلى حاوية كائن ثنائي كبير الخاصة بالإدخال.
    • function.proj⁩ تسرد المكتبات الخارجية في التعليمات البرمجية للدالة الخاصة بك، على سبيل المثال، SDK .NET الدفعي.
  7. تغيير قيم العنصر النائب للمتغيرات في ⁧Run()⁩ دالة ⁧run.csx⁩ الملف لعكس بيانات اعتماد الدفعة والتخزين. يمكنك العثور على بيانات اعتماد حساب الدفعة والتخزين في مدخل Microsoft Azure في قسم المفاتيح في حساب Batch والتخزين الخاص بك.

تشغيل الدالة واسترداد النتائج

قم بتحميل أي أو كل الملفات الممسوحة ضوئيًا من الدليل ⁧⁩⁧input_files⁩⁧⁩ على GitHub إلى حاوية الإدخال.

يمكنك اختبار الدالة من مدخل Microsoft Azure في صفحة Code + Test الخاصة بوظيفتك.

  1. حدد Test/run في صفحة Code + Test .
  2. أدخل مسار حاوية الإدخال في النص الأساسي في علامة التبويب Input .
  3. حدد ⁧⁩تشغيل⁧⁩.

بعد بضع ثوانٍ، تتم إضافة الملف الذي تم تطبيق 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.

تنظيف الموارد

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

  1. من صفحة Pools لحساب Batch الخاص بك، حدد المزيد من الخيارات على التجمع الخاص بك.
  2. حدد⁧⁩حذف⁧⁩.

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

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

لمزيد من الأمثلة على استخدام API.NET لجدولة ومعالجة أعباء العمل الدفعية، راجع العينات على GitHub.