إدارة موارد الدفعات باستخدام PowerShell cmdlets

باستخدام Azure Batch PowerShell cmdlets، يمكنك أداء العديد من مهام الدفعة المنتشرة، وكتابتها. هذه مقدمة سريعة لـ cmdlets، يمكنك الاستعانة بها لإدارة حسابات الدفعة، والعمل مع موارد الدفعة، مثل المجموعات، والوظائف، والمهام.

للحصول على قائمة كاملة من cmdlet الخاصة بالدفعة، وبناء جملة cmdlet التفصيلية، راجع مرجع cmdlet الخاص بدُفعة Azure.

ننصحك بتحديث وحدات Azure PowerShell النمطية بصورة متكررة، للاستفادة من تحديثات الخدمات، والتحسينات.

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

  • تثبيت وحدة Azure PowerShell النمطية وتكوينها. لتثبيت وحدة Azure Batch نمطية معينة، مثل وحدة نمطية ما قبل الإصدار، راجع معرض PowerShell.

  • تشغيل Connect-AzAccount cmdlet للاتصال باشتراكك (يتم شحن Azure Batch cmdlets في وحدة Azure Resource Manager النمطية):

    Connect-AzAccount
    
  • التسجيل باستخدام مساحة اسم موفر الدفعة. لا تحتاج إلا إلى القيام بهذه العملية مرة واحدة لكل اشتراك.

    Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
    

إدارة حسابات الدفعة والمفاتيح

أنشئ حساب Batch

يُنشئ New-AzBatchAccount حساب دفعة في مجموعة موارد محددة. إذا لم يكن لديك مجموعة موارد بالفعل، فقم بإنشاء حساب من خلال تشغيل New-AzResourceGroup cmdlet. حدد إحدى مناطق Azure في Location parameter، مثل "وسط الولايات المتحدة". على سبيل المثال:

New-AzResourceGroup –Name MyBatchResourceGroup –Location "Central US"

ثم أنشئ حساب الدفعة في مجموعة الموارد. حدد اسمًا للحساب في <account_name>، وموقع واسم مجموعة الموارد الخاصة بك. قد يستغرق إنشاء حساب الدفعة بعض الوقت لإكماله. على سبيل المثال:

New-AzBatchAccount –AccountName <account_name> –Location "Central US" –ResourceGroupName <res_group_name>

إشعار

يجب أن يكون اسم حساب الدفعة فريداً لمنطقة Azure لمجموعة الموارد، وأن يحتوي على ما بين 3 و24 حرفاً، وأن يستخدم الأحرف والأرقام الصغيرة فقط.

الحصول على مفاتيح الوصول إلى الحساب

يعرض Get-AzBatchAccountKeys مفاتيح الوصول المرتبطة بحساب Azure Batch. على سبيل المثال، قم بتشغيل ما يلي للحصول على المفاتيح الأساسية، والثانوية للحساب الذي قمت بإنشائه.

$Account = Get-AzBatchAccountKeys –AccountName <account_name>

$Account.PrimaryAccountKey

$Account.SecondaryAccountKey

إنشاء مفتاح وصول جديد

ينشئ New-AzBatchAccountKey مفتاح حساب أساسي أو ثانوي لحساب Azure Batch. على سبيل المثال، لإنشاء مفتاح أساسي جديد لحساب Batch، اكتب:

New-AzBatchAccountKey -AccountName <account_name> -KeyType Primary

إشعار

لإنشاء مفتاح ثانوي جديد، حدد "ثانوي" للمعلمة KeyType. يجب إعادة كتابة المفاتيح الأساسية، والثانوية، بشكل منفصل.

حذف حساب الدفعة

يحذف Remove-AzBatchAccount حساب الدفعة. على سبيل المثال:

Remove-AzBatchAccount -AccountName <account_name>

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

إنشاء عنصر BatchAccountContext

يمكنك المصادقة لإدارة موارد Batch باستخدام إما مصادقة المفتاح المشترك أو مصادقة Microsoft Entra. للمصادقة باستخدام Batch PowerShell cmdlets، أولاً، أنشئ كائن BatchAccountContext لتخزين بيانات اعتماد الحساب الخاص بك أو الهوية. قم بتمرير عنصر BatchAccountContext إلى cmdlets، الذي يستخدم المعلمة BatchContext.

مصادقة المفتاح المشترك

$context = Get-AzBatchAccountKeys -AccountName <account_name>

إشعار

بشكل افتراضي، يتم استخدام المفتاح الأساسي للحساب للمصادقة، ولكن يمكنك تحديد المفتاح الذي سيتم استخدامه بشكل صريح، من خلال تغيير BatchAccountContext لعنصر خاصية KeyInUse: $context.KeyInUse = "Secondary".

مصادقة Microsoft Entra

$context = Get-AzBatchAccount -AccountName <account_name>

إنشاء موارد الدفعات وتعديلها

استخدم cmdlets مثل New-AzBatchPool، وNew-AzBatchJob، وNew-AzBatchTask، لإنشاء موارد ضمن حساب الدفعة. يوجد Get- و Set- cmdlets مطابقة لتحديث خصائص الموارد الموجودة، و Remove- cmdlets لإزالة الموارد ضمن حساب الدُفعات.

عند استخدام العديد من هذه cmdlets، بالإضافة إلى تمرير عنصر BatchContext، فأنت بحاجة إلى إنشاء أو تمرير العناصر التي تحتوي على إعدادات المورد التفصيلية، على النحو موضح في المثال التالي. راجع التعليمات التفصيلية لكل cmdlet للحصول على أمثلة إضافية.

إنشاء تجمع Batch

عند إنشاء مجموعة دفعات أو تحديثها، يمكنك تحديد تكوين. يجب تكوين المجموعات بشكل عام باستخدام تكوين الجهاز الظاهري، والذي يتيح لك إما تحديد أحد صور Linux المعتمدة أو Windows VM المدرجة في Azure Virtual Machines Marketplace، أو توفير صورة مخصصة قمت بإعدادها. توفر مجموعات تكوين الخدمات السحابية عقد حساب Windows فقط، ولا تدعم جميع ميزات الدفعات.

عند تشغيل New-AzBatchPool، مرر إعدادات نظام التشغيل في العنصر PSVirtualMachineConfiguration أو PSCloudServiceConfiguration. على سبيل المثال، ينشئ القصاصة البرمجية التالية تجمع Batch بحجم Standard_A1 عقد حساب في تكوين الجهاز الظاهري، تم تصويره باستخدام Ubuntu Server 20.04-LTS. ومن ثم، تحدد المعلمة VirtualMachineConfiguration، المتغير $configuration، كعنصر PSVirtualMachineConfiguration. تعين المعلمة BatchContext متغيرًا مُحددًا مسبقاً $context كعنصر BatchAccountContext.

$imageRef = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSImageReference" -ArgumentList @("UbuntuServer","Canonical","20.04-LTS")

$configuration = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration" -ArgumentList @($imageRef, "batch.node.ubuntu 20.04")

New-AzBatchPool -Id "mypspool" -VirtualMachineSize "Standard_a1" -VirtualMachineConfiguration $configuration -AutoScaleFormula '$TargetDedicated=4;' -BatchContext $context

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

الاستعلام عن المجموعات، والوظائف، والمهام والتفاصيل الأخرى

استخدم cmdlets مثل Get-AzBatchPool، وGet-AzBatchJob، وGet-AzBatchTask للاستعلام للكيانات التي تم إنشاؤها ضمن حساب الدُّفعة.

الاستعلام عن البيانات

على سبيل المثال، استخدم Get-AzBatchPools للبحث عن مجموعاتك. بشكل افتراضي، هذه الاستعلامات لجميع المجموعات المدرجة ضمن الحساب الخاص بك، على افتراض أنك قمت بتخزين عنصر BatchAccountContext في $context:

Get-AzBatchPool -BatchContext $context

استخدام عامل التصفية OData

يمكنك توفير عامل التصفية OData باستخدام المعلمة Filter للعثور على العناصر التي تهتم بها فقط. على سبيل المثال، يمكنك العثور على جميع المجموعات ذات المعرفات التي تبدأ بـ "myPool":

$filter = "startswith(id,'myPool')"

Get-AzBatchPool -Filter $filter -BatchContext $context

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

استخدام معلمة المعرف

بديل لعامل التصفية OData هو استخدام المعلمة Id. للاستعلام عن مجموعة محددة بمعرف "myPool":

Get-AzBatchPool -Id "myPool" -BatchContext $context

لا تدعم المعلمة Id إلا البحث عن المعرف الكامل؛ لا أحرف البدل أو عوامل التصفية على غرار OData.

استخدام المعلمة MaxCount

بشكل افتراضي، كل cmdlet يُرجع بحد أقصى 1000 عنصر. إذا وصلت إلى هذا الحد، عليك إما تحسين عامل التصفية لإعادة عدد أقل من العناصر، أو تعيين الحد الأقصى باستخدام المعلمة MaxCount بشكل صريح. على سبيل المثال:

Get-AzBatchTask -MaxCount 2500 -BatchContext $context

لإزالة الحد الأعلى، عيّن MaxCount إلى 0 أو أقل.

استخدام مسار PowerShell

تستخدم cmdlets للدفعة مسار PowerShell، لإرسال البيانات بين cmdlets. هذا الخيار له نفس التأثير مثل تحديد المعلمة، ولكنه يجعل التعامل مع الكيانات المتعددة بصورة أسهل.

على سبيل المثال، ابحث عن كل المهام وعرضها ضمن حسابك:

Get-AzBatchJob -BatchContext $context | Get-AzBatchTask -BatchContext $context

إعادة تشغيل (إعادة تمهيد) كل عقدة حساب في مجموعة:

Get-AzBatchComputeNode -PoolId "myPool" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context

إدارة حزمة التطبيقات

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

هام

يجب ربط حساب تخزين Azure بحساب الدفعة لاستخدام حزم التطبيقات.

إنشاء تطبيق:

New-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"

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

New-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0" -Format zip -FilePath package001.zip

تعيين الإصدار الافتراضي للتطبيق:

Set-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -DefaultVersion "1.0"

إدراج حزم التطبيق

$application = Get-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"

$application.ApplicationPackages

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

Remove-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0"

حذف تطبيق

Remove-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"

إشعار

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

نشر حزمة تطبيق

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

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

$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference

$appPackageReference.ApplicationId = "MyBatchApplication"

$appPackageReference.Version = "1.0"

والآن، قمت بإنشاء المجموعة، وحددت عنصر مرجع الحزمة، كوسيطة للخيار ApplicationPackageReferences:

New-AzBatchPool -Id "PoolWithAppPackage" -VirtualMachineSize "Small" -VirtualMachineConfiguration $configuration -BatchContext $context -ApplicationPackageReferences $appPackageReference

يمكنك العثور على مزيد من المعلومات حول حزم التطبيقات في نشر التطبيقات للعقد الحسابية باستخدام حزم تطبيق الدفعة.

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

لتحديث التطبيقات المعينة إلى مجموعة موجودة، أنشئ أولاً بإنشاء عنصر PSApplicationPackageReference، بالخصائص المطلوبة (معرف التطبيق وإصدار الحزمة):

$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference

$appPackageReference.ApplicationId = "MyBatchApplication"

$appPackageReference.Version = "2.0"

بعد ذلك، احصل على المجموعة من الدفعة، وامسح أي حزم موجودة، وأضِف مرجع الحزمة الجديدة، وتحديث خدمة الدفعة، مع إعدادات المجموعة الجديدة:

$pool = Get-AzBatchPool -BatchContext $context -Id "PoolWithAppPackage"

$pool.ApplicationPackageReferences.Clear()

$pool.ApplicationPackageReferences.Add($appPackageReference)

Set-AzBatchPool -BatchContext $context -Pool $pool

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

Get-AzBatchComputeNode -PoolId "PoolWithAppPackage" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context

تلميح

يمكنك نشر حزم تطبيقات متعددة، إلى عقد الحسابية في المجموعة. إذا كنت ترغب في إضافة حزمة تطبيق بدلاً من استبدال الحزم المنشورة حالياً، فاحذف سطر $pool.ApplicationPackageReferences.Clear() أعلاه.

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