مشاركة عبر


نشر التطبيقات لحساب العقد باستخدام حزم تطبيقات Batch

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

تعد واجهات برمجة التطبيقات لإنشاء حزم التطبيقات وإدارتها جزءا من مكتبة Batch Management .NET . تعد واجهات برمجة التطبيقات لتثبيت حزم التطبيقات على عقدة حساب جزءا من مكتبة Batch .NET . توجد ميزات قابلة للمقارنة في واجهات برمجة التطبيقات الدفعية المتوفرة للغات البرمجة الأخرى.

تشرح هذه المقالة كيفية تحميل حزم التطبيقات وإدارتها في مدخل Microsoft Azure. كما يوضح كيفية تثبيتها على عقد حساب التجمع مع مكتبة Batch .NET .

متطلبات حزمة التطبيق

لاستخدام حزم التطبيقات، تحتاج إلى ربط حساب Azure Storage بحساب Batch الخاص بك.

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

إشعار

لا تدعم مجموعات الدفعات التي تم إنشاؤها قبل 5 يوليو 2017 حزم التطبيقات (ما لم يتم إنشاؤها بعد 10 مارس 2016 باستخدام تكوين الخدمات السحابية). تحل ميزة حزم التطبيقات الموضحة هنا محل ميزة Batch Apps المتوفرة في الإصدارات السابقة من الخدمة.

فهم التطبيقات وحزم التطبيقات

ضمن Azure Batch، يشير أحد التطبيقات إلى مجموعة من الثنائيات التي تم إصدارها والتي يمكن تنزيلها تلقائيًا إلى العقد الحوسبية في المجموعة الخاصة بك. يحتوي التطبيق على حزمة تطبيق واحدة أو أكثر، والتي تمثل إصدارات مختلفة من التطبيق.

كل حزمة تطبيق هي ملف .zip يحتوي على ثنائيات التطبيق وأي ملفات داعمة. يتم اعتماد تنسيق .zip فقط.

رسم تخطيطي يوضح طريقة عرض عالية المستوى للتطبيقات وحزم التطبيقات.

يمكنك تحديد حزم التطبيقات على مستوى التجمع أو المهمة.

  • يتم نشر حزم تطبيقات التجمع إلى كل عقدة في التجمع. يتم نشر التطبيقات عندما تنضم عقدة إلى تجمع وعند إعادة تمهيدها أو إعادة تصورها.

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

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

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

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

مع حزم التطبيقات، لا يتعين على مهمة بدء التجمع تحديد قائمة طويلة من ملفات الموارد الفردية لتثبيتها على العقد. لا يتعين عليك إدارة إصدارات متعددة من ملفات التطبيق يدويا في Azure Storage أو على العقد الخاصة بك. ولا داعي للقلق بشأن إنشاء عناوين URL ل SAS لتوفير الوصول إلى الملفات في حساب Azure Storage الخاص بك. تعمل الدفعة في الخلفية مع Azure Storage لتخزين حزم التطبيقات ونشرها لحساب العقد.

إشعار

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

تحميل التطبيقات وإدارتها

يمكنك استخدام مدخل Microsoft Azure أو واجهات برمجة تطبيقات إدارة الدفعات لإدارة حزم التطبيقات في حساب Batch الخاص بك. تشرح الأقسام التالية كيفية ربط حساب تخزين، وتعلم كيفية إضافة التطبيقات وحزم التطبيقات وإدارتها في مدخل Microsoft Azure.

إشعار

بينما يمكنك تعريف قيم التطبيق في مورد Microsoft.Batch/batchAccountsلقالب ARM، لا يمكن حاليا استخدام قالب ARM لتحميل حزم التطبيقات لاستخدامها في حساب Batch الخاص بك. يجب تحميلها إلى حساب التخزين المرتبط كما هو موضح في إضافة تطبيق جديد.

لاستخدام حزم التطبيقات، يجب ربط حساب Azure Storage بحساب Batch الخاص بك. تستخدم خدمة Batch حساب التخزين المقترن لتخزين حزم التطبيقات الخاصة بك. من الناحية المثالية، يجب إنشاء حساب تخزين خصيصا للاستخدام مع حساب Batch الخاص بك.

إذا لم تكن قد قمت بتكوين حساب تخزين بعد، يعرض مدخل Microsoft Azure تحذيرا في المرة الأولى التي تحدد فيها التطبيقات من قائمة التنقل اليسرى في حساب Batch الخاص بك. تحتاج إلى ربط حساب تخزين بحساب Batch الخاص بك:

  1. حدد نافذة التحذير التي تنص على "لا يوجد حساب تخزين تم تكوينه لحساب الدفعة هذا".
  2. ثم اختر مجموعة حساب التخزين... في الصفحة التالية.
  3. اختر الارتباط تحديد حساب تخزين في قسم معلومات حساب التخزين .
  4. حدد حساب التخزين الذي تريد استخدامه مع حساب الدفعة هذا في القائمة في جزء اختيار حساب التخزين .
  5. ثم حدد حفظ في الزاوية العلوية اليمنى من الصفحة.

بعد ربط الحسابين، يمكن ل Batch نشر الحزم المخزنة في حساب التخزين المرتبط تلقائيا إلى عقد الحوسبة الخاصة بك.

هام

لا يمكنك استخدام حزم التطبيقات مع حسابات Azure Storage المكونة مع قواعد جدار الحماية أو مع تعيين مساحة الاسم الهرمية إلى ممكن.

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

إضافة تطبيق جديد

لإنشاء تطبيق جديد، يمكنك إضافة حزمة تطبيق وتحديد معرف تطبيق فريد.

في حساب Batch الخاص بك، حدد Applications من قائمة التنقل اليسرى، ثم حدد Add.

لقطة شاشة لعملية إنشاء تطبيق جديد في مدخل Microsoft Azure.

أدخل المعلومات التالية:

  • معرف التطبيق: معرف التطبيق الجديد.
  • Version": إصدار حزمة التطبيق التي تقوم بتحميلها.
  • حزمة التطبيق: ملف .zip يحتوي على ثنائيات التطبيق والملفات الداعمة المطلوبة لتشغيل التطبيق.

يجب أن يتبع معرف التطبيقوالإصدار الذي تدخله المتطلبات التالية:

  • في عقد Windows، يمكن أن يحتوي المعرّف على أي مجموعة من الأحرف الأبجدية الرقمية والواصلات والشرطات السفلية. على عقد Linux، يُسمح فقط بالأحرف الأبجدية الرقمية والشرطات السفلية.
  • لا يمكن أن يحتوي على أكثر من 64 حرفا.
  • يجب أن يكون فريدا داخل حساب Batch.
  • المعرفات تحافظ على حالة الأحرف وتكون غير حساسة لحالة الأحرف.

عندما تصبح جاهزا، حدد إرسال. بعد تحميل ملف .zip إلى حساب Azure Storage الخاص بك، يعرض المدخل إعلاما. اعتمادا على حجم الملف الذي تقوم بتحميله وسرعة اتصال الشبكة، قد تستغرق هذه العملية بعض الوقت.

عرض التطبيقات الحالية

لعرض التطبيقات في حساب Batch الخاص بك، حدد Applications في قائمة التنقل اليسرى.

لقطة شاشة لعنصر قائمة التطبيقات في مدخل Microsoft Azure.

يؤدي تحديد خيار القائمة هذا إلى فتح نافذة التطبيقات . تعرض هذه النافذة معرف كل تطبيق في حسابك والخصائص التالية:

  • الحزم: عدد الإصدارات المقترنة بهذا التطبيق.
  • الإصدار الافتراضي: إذا كان ذلك ممكنا، إصدار التطبيق المثبت إذا لم يتم تحديد أي إصدار عند نشر التطبيق.
  • السماح بالتحديثات: يحدد ما إذا كان مسموحا بتحديثات الحزمة وحذفها.

لمشاهدة بنية ملف حزمة التطبيق على عقدة حساب، انتقل إلى حساب Batch الخاص بك في مدخل Microsoft Azure. حدد Pools. ثم حدد التجمع الذي يحتوي على عقدة الحساب. حدد عقدة الحساب التي تم تثبيت حزمة التطبيق عليها وافتح مجلد التطبيقات .

عرض تفاصيل التطبيق

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

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

إضافة حزمة تطبيق جديدة

لإضافة إصدار حزمة تطبيق لتطبيق موجود، حدد التطبيق في صفحة التطبيقات لحساب Batch الخاص بك. ثمَّ حَدِّد إضَافَة.

كما فعلت للتطبيق الجديد، حدد الإصدار لحزمتك الجديدة، وقم بتحميل ملف .zip في حقل حزمة التطبيق ، ثم حدد إرسال.

تحديث حزمة تطبيق أو حذفها

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

لقطة شاشة تعرض خيارات التحديث والحذف لحزم التطبيقات في مدخل Microsoft Azure.

إذا حددت تحديث، يمكنك تحميل ملف .zip جديد. يحل هذا الملف محل ملف .zip السابق الذي قمت بتحميله لهذا الإصدار.

إذا حددت حذف، فستتم مطالبتك بتأكيد حذف هذا الإصدار. بعد تحديد موافق، يحذف Batch ملف .zip من حساب Azure Storage الخاص بك. إذا قمت بحذف الإصدار الافتراضي من أحد التطبيقات، تتم إزالة إعداد الإصدار الافتراضي لهذا التطبيق.

تثبيت التطبيقات على عقد الحوسبة

لقد تعلمت كيفية إدارة حزم التطبيقات في مدخل Microsoft Azure. الآن يمكنك معرفة كيفية توزيعها لحساب العقد وتشغيلها مع مهام Batch.

تثبيت حزم تطبيقات التجمع

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

في Batch .NET، حدد واحدا أو أكثر من CloudPool.ApplicationPackageReferences عند إنشاء تجمع جديد أو عند استخدام تجمع موجود. تحدد فئة ApplicationPackageReference معرف التطبيق والإصدار المراد تثبيتهما على عقد حساب التجمع.

// Create the unbound CloudPool
CloudPool myCloudPool =
    batchClient.PoolOperations.CreatePool(
        poolId: "myPool",
        targetDedicatedComputeNodes: 1,
        virtualMachineSize: "standard_d1_v2",
        VirtualMachineConfiguration: new VirtualMachineConfiguration(
            imageReference: new ImageReference(
                                publisher: "MicrosoftWindowsServer",
                                offer: "WindowsServer",
                                sku: "2019-datacenter-core",
                                version: "latest"),
            nodeAgentSkuId: "batch.node.windows amd64");

// Specify the application and version to install on the compute nodes
myCloudPool.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference {
        ApplicationId = "litware",
        Version = "1.1001.2b" }
};

// Commit the pool so that it's created in the Batch service. As the nodes join
// the pool, the specified application package is installed on each.
await myCloudPool.CommitAsync();

هام

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

تثبيت حزم تطبيقات المهام

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

لتثبيت حزمة تطبيق مهمة، قم بتكوين خاصية CloudTask.ApplicationPackageReferences الخاصة بالمهمة :

CloudTask task =
    new CloudTask(
        "litwaretask001",
        "cmd /c %AZ_BATCH_APP_PACKAGE_LITWARE%\\litware.exe -args -here");

task.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference
    {
        ApplicationId = "litware",
        Version = "1.1001.2b"
    }
};

تنفيذ التطبيقات المثبتة

يتم تنزيل الحزم التي تحددها لتجمع أو مهمة واستخراجها إلى دليل مسمى داخل AZ_BATCH_ROOT_DIR العقدة. ينشئ Batch أيضا متغير بيئة يحتوي على المسار إلى الدليل المسمى. تستخدم أسطر أوامر المهمة متغير البيئة هذا عند الرجوع إلى التطبيق على العقدة.

في عقد Windows، يكون المتغير بالتنسيق التالي:

Windows:
AZ_BATCH_APP_PACKAGE_APPLICATIONID#version

في عقد Linux، يختلف التنسيق قليلا. يتم تسوية الفترات (.) والواصلات (-) وعلامات الأرقام (#) إلى تسطير أسفل السطر في متغير البيئة. أيضا، يتم الاحتفاظ بحالة معرف التطبيق. على سبيل المثال:

Linux:
AZ_BATCH_APP_PACKAGE_applicationid_version

APPLICATIONID و version هي القيم التي تتوافق مع إصدار التطبيق والحزمة التي حددتها للتوزيع. على سبيل المثال، إذا حددت أن الإصدار 2.7 من خلاط التطبيق يجب تثبيته على عقد Windows، فستستخدم أسطر أوامر المهمة متغير البيئة هذا للوصول إلى ملفاته:

Windows:
AZ_BATCH_APP_PACKAGE_BLENDER#2.7

في عقد Linux، حدد متغير البيئة بهذا التنسيق. قم بتسطيح الفترات (.) والواصلات (-) وعلامات الأرقام (#) إلى تسطير أسفل السطر، والاحتفاظ بحالة معرف التطبيق:

Linux:
AZ_BATCH_APP_PACKAGE_blender_2_7

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

على سبيل المثال، إذا قمت بتعيين "2.7" كإصدار افتراضي لمجموعة التطبيقات، وكانت مهامك تشير إلى متغير البيئة التالي، فإن عقد Windows تستخدم الإصدار 2.7:

AZ_BATCH_APP_PACKAGE_BLENDER

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

string taskId = "blendertask01";
string commandLine =
    @"cmd /c %AZ_BATCH_APP_PACKAGE_BLENDER%\blender.exe -args -here";
CloudTask blenderTask = new CloudTask(taskId, commandLine);

تلميح

لمزيد من المعلومات حول إعدادات بيئة عقدة الحساب، راجع إعدادات البيئة للمهام.

تحديث حزم تطبيقات التجمع

إذا تم تكوين تجمع موجود بالفعل مع حزمة تطبيق، يمكنك تحديد حزمة جديدة للتجمع. يعني ذلك:

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

في هذا المثال، يحتوي التجمع الموجود على الإصدار 2.7 من تطبيق الخلاط الذي تم تكوينه كأحد CloudPool.ApplicationPackageReferences الخاصة به. لتحديث عقد التجمع مع الإصدار 2.76b، حدد ApplicationPackageReference جديد مع الإصدار الجديد، وقم بتنفيذ التغيير.

string newVersion = "2.76b";
CloudPool boundPool = await batchClient.PoolOperations.GetPoolAsync("myPool");
boundPool.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference {
        ApplicationId = "blender",
        Version = newVersion }
};
await boundPool.CommitAsync();

الآن بعد أن تم تكوين الإصدار الجديد، تقوم خدمة Batch بتثبيت الإصدار 2.76b إلى أي عقدة جديدة تنضم إلى التجمع. لتثبيت 2.76b على العقد الموجودة بالفعل في التجمع، أعد تمهيدها أو أعد تعيينها. تحتفظ العقد المعاد تمهيدها بالملفات من عمليات نشر الحزمة السابقة.

سرد التطبيقات في حساب Batch

يمكنك سرد التطبيقات وحزمها في حساب Batch باستخدام أسلوب ApplicationOperations.ListApplicationSummaries .

// List the applications and their application packages in the Batch account.
List<ApplicationSummary> applications = await batchClient.ApplicationOperations.ListApplicationSummaries().ToListAsync();
foreach (ApplicationSummary app in applications)
{
    Console.WriteLine("ID: {0} | Display Name: {1}", app.Id, app.DisplayName);

    foreach (string version in app.Versions)
    {
        Console.WriteLine("  {0}", version);
    }
}

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