إدارة حسابات "الدفعات" والحصص مع مكتبة العميل Batch Management لـ .NET

يمكنك تقليل عمليات الصيانة الإضافية في تطبيقات Azure Batch باستخدام مكتبة Batch Management .NET لأتمتة إنشاء حساب "الدُفعة" وحذفه، وإدارة المفتاح، واكتشاف الحصة النسبية.

  • إنشاء حسابات "الدُفعات" وحذفها داخل أي منطقة. إذا قمت، كمورد برامج مستقل (ISV) على سبيل المثال، بتوفير خدمة للعملاء حيث يتم تعيين حساب "دُفعة" منفصل لكل منهم لأغراض الفوترة، فيمكنك إضافة إمكانيات إنشاء الحساب وحذفه إلى مدخل العميل.
  • استرداد وإعادة إنشاء مفاتيح الحساب برمجياً لأي من حسابات "الدفعات". يمكن أن يساعدك ذلك على الالتزام بنُهج الأمان التي تفرض فترة التمديد أو انتهاء صلاحية مفاتيح الحساب. عندما يكون لديك العديد من حسابات "الدفعات" في مناطق Azure المختلفة، تؤدي أتمتة عملية التمديد هذه إلى زيادة كفاءة الحل الخاص بك.
  • التحقق من حصص الحساب وتخلص من تخمينات المحاولات والأخطاء لتحديد حسابات "الدفعات" والحدود الخاصة بها. من خلال التحقق من حصص الحساب النسبية قبل بدء المهام، أو إنشاء تجمعات، أو إضافة عُقد حساب، يمكنك ضبط مكان أو وقت إنشاء موارد الحساب هذه بشكل استباقي. يمكنك تحديد الحسابات التي تتطلب زيادات في الحصة النسبية قبل تخصيص موارد إضافية في تلك الحسابات.
  • اجمع بين ميزات خدمات Azure الأخرى للحصول على تجربة إدارة كاملة الميزات باستخدام Batch Management .NET وMicrosoft Entra ID وAzure Resource Manager معا في نفس التطبيق. باستخدام هذه الميزات وواجهات برمجة التطبيقات الخاصة بها، يمكنك توفير تجربة مصادقة سلسة، والقدرة على إنشاء مجموعات الموارد وحذفها، والإمكانيات الموضحة أعلاه للحصول على حل إدارة شامل.

إشعار

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

إنشاء حسابات الدفعات وحذفها

من إحدى الميزات الأساسية لواجهة برمجة تطبيقات إدارة "الدفعات" إنشاء وحذف حسابات الدُفعات في منطقة Azure. للقيام بذلك، استخدم BatchAccountCollection.CreateOrUpdate وDelete، أو نظرائهم غير المتزامنين.

تنشئ القصاصة البرمجية التالية حساباً، وتحصل على الحساب الذي تم إنشاؤه حديثاً من خدمة "الدُفعة"، ثم تحذفه.

 string subscriptionId = "Your SubscriptionID";
 string resourceGroupName = "Your ResourceGroup name";

 var credential = new DefaultAzureCredential();
 ArmClient _armClient = new ArmClient(credential);

 ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
 ResourceGroupResource resourceGroupResource = _armClient.GetResourceGroupResource(resourceGroupResourceId);

 var data = new BatchAccountCreateOrUpdateContent(AzureLocation.EastUS);

 // Create a new batch account
 resourceGroupResource.GetBatchAccounts().CreateOrUpdate(WaitUntil.Completed, "Your BatchAccount name", data);
 
 // Get an existing batch account
 BatchAccountResource batchAccount = resourceGroupResource.GetBatchAccount("Your BatchAccount name");

 // Delete the batch account
 batchAccount.Delete(WaitUntil.Completed);

إشعار

تتطلب التطبيقات التي تستخدم مكتبة .NET لإدارة الدفعات وصول مسؤول الخدمة أو مسؤول النظام إلى الاشتراك الذي يمتلك حساب Batch لإدارته. لمزيد من المعلومات، راجع قسم معرف Microsoft Entra ونموذج رمز AccountManagement .

استرداد مفاتيح الحساب وإعادة إنشائها

احصل على مفاتيح الحساب الأساسي والثانوي من أي حساب Batch ضمن اشتراكك باستخدام GetKeys. يمكنك إعادة إنشاء هذه المفاتيح باستخدام RegenerateKey.

string subscriptionId = "Your SubscriptionID";
string resourceGroupName = "Your ResourceGroup name";

var credential = new DefaultAzureCredential();
ArmClient _armClient = new ArmClient(credential);

ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = _armClient.GetResourceGroupResource(resourceGroupResourceId);

var data = new BatchAccountCreateOrUpdateContent(AzureLocation.EastUS);

// Get an existing batch account
BatchAccountResource batchAccount = resourceGroupResource.GetBatchAccount("Your BatchAccount name");

// Get and print the primary and secondary keys
BatchAccountKeys accountKeys = batchAccount.GetKeys();

Console.WriteLine("Primary key:   {0}", accountKeys.Primary);
Console.WriteLine("Secondary key: {0}", accountKeys.Secondary);

// Regenerate the primary key
BatchAccountRegenerateKeyContent regenerateKeyContent = new BatchAccountRegenerateKeyContent(BatchAccountKeyType.Primary);
batchAccount.RegenerateKey(regenerateKeyContent);

تلميح

يمكنك إنشاء سير عمل اتصال مبسط لتطبيقات الإدارة لديك. أولا، احصل على مفتاح حساب لحساب Batch الذي ترغب في إدارته باستخدام GetKeys. وبعد ذلك، استخدم هذا المفتاح عند تهيئة فئة BatchSharedKeyCredentials الخاصة بمكتبة Batch .NET، والتي تُستخدم عند تهيئة BatchClient.

التحقق من اشتراكات Azure والحصص لحساب الدُفعة

تحتوي جميع اشتراكات Azure وخدمات Azure الفردية مثل "الدفعات" على حصص نسبية افتراضية تقيد من عدد كيانات معينة داخلها. لمعرفة الحصص الافتراضية لاشتراكات Azure، راجع قيود الاشتراك والخدمة والحصص والقيود لدى Azure. للاطلاع على الحصص الافتراضية لخدمة "الدفعات"، راجع الحصص والقيود لخدمة Azure Batch. باستخدام مكتبة Batch Management .NET، يمكنك التحقق من هذه الحصص في التطبيقات الخاصة بك. يمكّنك هذا من اتخاذ قرارات التخصيص قبل إضافة حسابات أو موارد الحساب مثل التجمعات وعُقد الحساب.

التحقق من اشتراك Azure للحصص حساب "الدفعات"

قبل إنشاء حساب "الدُفعة" في منطقة ما، يمكنك التحقق من اشتراك Azure لمعرفة ما إذا كنت قادراً على إضافة حساب في تلك المنطقة.

في مقتطف التعليمات البرمجية أدناه، نستخدم أولا GetBatchAccounts للحصول على مجموعة من جميع حسابات الدفعات الموجودة ضمن اشتراك. بمجرد أن نحصل على هذه المجموعة، نحدد عدد الحسابات في المنطقة المستهدفة. ثم نستخدم GetBatchQuotas للحصول على حصة حساب الدفعة وتحديد عدد الحسابات (إن وجدت) التي يمكن إنشاؤها في تلك المنطقة.

string subscriptionId = "Your SubscriptionID";
ArmClient _armClient = new ArmClient(new DefaultAzureCredential());

ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId);
SubscriptionResource subscriptionResource = _armClient.GetSubscriptionResource(subscriptionResourceId);

// Get a collection of all Batch accounts within the subscription
var batchAccounts = subscriptionResource.GetBatchAccounts();
Console.WriteLine("Total number of Batch accounts under subscription id {0}:  {1}", subscriptionId, batchAccounts.Count());

// Get a count of all accounts within the target region
string region = "eastus";
int accountsInRegion = batchAccounts.Count(o => o.Data.Location == region);

// Get the account quota for the specified region
BatchLocationQuota batchLocationQuota = subscriptionResource.GetBatchQuotas(AzureLocation.EastUS);
Console.WriteLine("Account quota for {0} region: {1}", region, batchLocationQuota.AccountQuota);

// Determine how many accounts can be created in the target region
Console.WriteLine("Accounts in {0}: {1}", region, accountsInRegion);
Console.WriteLine("You can create {0} accounts in the {1} region.", batchLocationQuota.AccountQuota - accountsInRegion, region);

في القصاصة المذكورة أعلاه، يُعد creds مثيلاً لـ TokenCredentials. للاطلاع على مثال لإنشاء هذا الكائن، راجع نموذج التعليمة البرمجية AccountManagement على GitHub.

التحقق من حساب "الدُفعة" لحساب حصص موارد الحساب

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

string subscriptionId = "Your SubscriptionID";
string resourceGroupName = "Your ResourceGroup name";

var credential = new DefaultAzureCredential();
ArmClient _armClient = new ArmClient(credential);

ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = _armClient.GetResourceGroupResource(resourceGroupResourceId);

// Get an existing batch account
BatchAccountResource batchAccount = resourceGroupResource.GetBatchAccount("Your BatchAccount name");

// Now print the compute resource quotas for the account
Console.WriteLine("Core quota: {0}", batchAccount.Data.DedicatedCoreQuota);
Console.WriteLine("Pool quota: {0}", batchAccount.Data.PoolQuota);
Console.WriteLine("Active job and job schedule quota: {0}", batchAccount.Data.ActiveJobAndJobScheduleQuota);

هام

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

استخدام معرف Microsoft Entra مع Batch Management .NET

تُعد مكتبة Batch Management .NET عميل موفر الموارد في Azure، ويتم استخدامها معاً مع Azure Resource Manager لإدارة موارد الحساب برمجياً. مطلوب معرف Microsoft Entra لمصادقة الطلبات التي تم إجراؤها من خلال أي عميل موفر موارد Azure، بما في ذلك مكتبة Batch Management .NET، ومن خلال Azure Resource Manager. للحصول على معلومات حول استخدام معرف Microsoft Entra مع مكتبة Batch Management .NET، راجع استخدام معرف Microsoft Entra لمصادقة حلول Batch.

نموذج المشروع على GitHub

للاطلاع على آلية عمل Batch Management .NET، ألق نظرة على نموذج المشروع AccountManagement على GitHub. يوضح نموذج التطبيق AccountManagement العمليات التالية:

  1. احصل على رمز أمان من معرف Microsoft Entra باستخدام الحصول على الرموز المميزة وتخزينها مؤقتا باستخدام مكتبة مصادقة Microsoft (MSAL). إذا لم يكن المستخدم قد قام بتسجيل الدخول مسبقاً، تتم مطالبته ببيانات اعتماد Azure الخاصة به.
  2. باستخدام رمز الأمان المميز الذي تم الحصول عليه من معرف Microsoft Entra، قم بإنشاء SubscriptionClient للاستعلام عن Azure للحصول على قائمة الاشتراكات المقترنة بالحساب. يمكن للمستخدم تحديد اشتراك من القائمة إذا كان يحتوي على أكثر من اشتراك واحد.
  3. الحصول على بيانات الاعتماد المقترنة بالاشتراك المحدد.
  4. إنشاء كائن ResourceManagementClient باستخدام بيانات الاعتماد.
  5. استخدام كائن ResourceManagementClient لإنشاء مجموعة موارد.
  6. استخدم كائن BatchManagementClient لتنفيذ العديد من عمليات حساب Batch:
    • إنشاء حساب "الدُفعة" في مجموعة الموارد الجديدة.
    • الحصول على الحساب الذي تم إنشاؤه حديثاً من خدمة "الدُفعة".
    • طباعة مفاتيح الحساب من أجل الحساب الجديد.
    • إعادة إنشاء مفتاح أساسي جديد للحساب.
    • طباعة معلومات الحصة من أجل الحساب.
    • طباعة معلومات الحصة للاشتراك.
    • طباعة جميع الحسابات داخل الاشتراك.
    • حذف الحساب الذي تم إنشاؤه حديثاً.
  7. حذف مجموعة الموارد.

لتشغيل نموذج التطبيق بنجاح، يجب أولا تسجيله مع مستأجر Microsoft Entra في مدخل Microsoft Azure ومنح أذونات لواجهة برمجة تطبيقات Azure Resource Manager. اتبع الخطوات المتوفرة في حلول "مصادقة إدارة الدفعات" مع خدمات مجال Active Directory.

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

  • اطلع على سير عمل خدمة "الدُفعة" ومواردها الأساسية مثل المجموعات والعُقد والمهام.
  • تعرف على أساسيات تطوير تطبيق يدعم Batch باستخدام مكتبة عميل Batch .NET أو Python. توجِّهك دلائل التشغيل السريع هذه خلال نموذج التطبيق الذي يستخدم خدمات Batch لتنفيذ حمل عمل في عقد حساب متعددة باستخدام Azure Storage لتقسيم مرحلي لملف حمل عمل واسترجاعه.