.NET için Toplu Yönetim istemci kitaplığıyla Batch hesaplarını ve kotalarını yönetme

Batch hesabı oluşturma, silme, anahtar yönetimi ve kota bulma işlemlerini otomatikleştirmek için Batch Management .NET kitaplığını kullanarak Azure Batch uygulamalarınızda bakım yükünü azaltabilirsiniz.

  • Herhangi bir bölgede Batch hesapları oluşturun ve silin. Örneğin bağımsız bir yazılım satıcısı (ISV) olarak, müşterileriniz için faturalama amacıyla her birine ayrı bir Batch hesabı atanmış bir hizmet sağlarsanız, müşteri portalınıza hesap oluşturma ve silme özellikleri ekleyebilirsiniz.
  • Batch hesaplarınızdan herhangi biri için hesap anahtarlarını program aracılığıyla alın ve yeniden oluşturun. Bu, düzenli olarak geçiş veya hesap anahtarlarının süresinin dolmasını zorunlu kılan güvenlik ilkelerine uymanıza yardımcı olabilir. Çeşitli Azure bölgelerinde birden fazla Batch hesabınız olduğunda, bu geçiş işleminin otomasyonu çözümünüzün verimliliğini artırır.
  • Hesap kotalarını denetleyin ve hangi Batch hesaplarının hangi sınırlara sahip olduğunu belirlemek için deneme ve hata tahminini alın. İşleri başlatmadan, havuz oluşturmadan veya işlem düğümleri eklemeden önce hesap kotalarınızı denetleyerek, bu işlem kaynaklarının nerede veya ne zaman oluşturulduğunu proaktif olarak ayarlayabilirsiniz. Bu hesaplarda ek kaynaklar ayırmadan önce hangi hesapların kota artışı gerektirdiğini belirleyebilirsiniz.
  • Batch Management .NET, Microsoft Entra ID ve Azure Resource Manager'ı aynı uygulamada birlikte kullanarak tam özellikli bir yönetim deneyimi için diğer Azure hizmetlerinin özelliklerini birleştirin. Bu özellikleri ve BUNLARıN API'lerini kullanarak sorunsuz bir kimlik doğrulama deneyimi, kaynak grupları oluşturup silme olanağı ve uçtan uca bir yönetim çözümü için yukarıda açıklanan özellikleri sağlayabilirsiniz.

Not

Bu makale Batch hesaplarınızın, anahtarlarınızın ve kotalarınızın programlı yönetimine odaklansa da, Azure portalını kullanarak bu etkinliklerin çoğunu da gerçekleştirebilirsiniz.

Batch hesapları oluşturma ve silme

Batch Management API'sinin birincil özelliklerinden biri, bir Azure bölgesinde Batch hesapları oluşturmak ve silmektir. Bunu yapmak için BatchAccountCollection.CreateOrUpdate ve Delete veya zaman uyumsuz karşılıklarını kullanın.

Aşağıdaki kod parçacığı bir hesap oluşturur, batch hizmetinden yeni oluşturulan hesabı alır ve ardından siler.

 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);

Not

Batch Management .NET kitaplığını kullanan uygulamalar, yönetilecek Batch hesabının sahibi olan aboneliğe hizmet yöneticisi veya ortak yönetici erişimi gerektirir. Daha fazla bilgi için Microsoft Entra Id bölümüne ve AccountManagement kod örneğine bakın.

Hesap anahtarlarını alma ve yeniden oluşturma

GetKeys kullanarak aboneliğinizdeki herhangi bir Batch hesabından birincil ve ikincil hesap anahtarlarını alın. RegenerateKey kullanarak bu anahtarları yeniden oluşturabilirsiniz.

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);

İpucu

Yönetim uygulamalarınız için kolaylaştırılmış bir bağlantı iş akışı oluşturabilirsiniz. İlk olarak, GetKeys ile yönetmek istediğiniz Batch hesabı için bir hesap anahtarı alın. Ardından, BatchClient başlatılırken kullanılan Batch .NET kitaplığının BatchSharedKeyCredentials sınıfını başlatırken bu anahtarı kullanın.

Azure aboneliği ve Batch hesabı kotalarını denetleme

Azure aboneliklerinin ve Batch gibi tek tek Azure hizmetlerinin tümü, içindeki belirli varlıkların sayısını sınırlayan varsayılan kotalara sahiptir. Azure abonelikleri için varsayılan kotalar için bkz . Azure aboneliği ve hizmet sınırları, kotalar ve kısıtlamalar. Batch hizmetinin varsayılan kotaları için bkz . Azure Batch hizmeti için kotalar ve sınırlar. Batch Management .NET kitaplığını kullanarak uygulamalarınızda bu kotaları denetleyebilirsiniz. Bu, havuzlar ve işlem düğümleri gibi hesaplar veya işlem kaynakları eklemeden önce ayırma kararları vermenizi sağlar.

Batch hesabı kotaları için Azure aboneliğini denetleme

Bir bölgede Batch hesabı oluşturmadan önce Azure aboneliğinizi denetledikten sonra bu bölgeye hesap ekleyip ekleyemeyeceğinizi görebilirsiniz.

Aşağıdaki kod parçacığında, önce bir abonelik içindeki tüm Batch hesaplarının koleksiyonunu almak için GetBatchAccounts'ı kullanırız. Bu koleksiyonu aldıktan sonra hedef bölgede kaç hesap olduğunu belirleriz. Ardından Batch hesabı kotasını almak ve bu bölgede kaç hesap (varsa) oluşturulabileceğini belirlemek için GetBatchQuotas'ı kullanırız.

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);

Yukarıdaki kod parçacığında TokenCredentials creds örneği yer alır. Bu nesneyi oluşturma örneğini görmek için GitHub'da AccountManagement kod örneğine bakın.

İşlem kaynağı kotaları için Batch hesabını denetleme

Batch çözümünüzde işlem kaynaklarını artırmadan önce, ayırmak istediğiniz kaynakların hesabın kotalarını aşmadığından emin olmak için kontrol edebilirsiniz. Aşağıdaki kod parçacığında adlı mybatchaccountBatch hesabının kota bilgilerini yazdırıyoruz. Kendi uygulamanızda, hesabın oluşturulacak ek kaynakları işleyip işleyemeyeceğini belirlemek için bu bilgileri kullanabilirsiniz.

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);

Önemli

Azure abonelikleri ve hizmetleri için varsayılan kotalar olsa da, Azure portalında kota artışı istenerek bu sınırların çoğu artırılabilir.

Batch Management .NET ile Microsoft Entra Id kullanma

Batch Management .NET kitaplığı bir Azure kaynak sağlayıcısı istemcisidir ve hesap kaynaklarını program aracılığıyla yönetmek için Azure Resource Manager ile birlikte kullanılır. Batch Management .NET kitaplığı dahil olmak üzere herhangi bir Azure kaynak sağlayıcısı istemcisi ve Azure Resource Manager aracılığıyla yapılan isteklerin kimliğini doğrulamak için Microsoft Entra Id gereklidir. Batch Management .NET kitaplığıyla Microsoft Entra Id kullanma hakkında bilgi için bkz . Batch çözümlerinin kimliğini doğrulamak için Microsoft Entra Id kullanma.

GitHub'da örnek proje

Batch Management .NET'i uygulamada görmek için GitHub'daki AccountManagement örnek projesine göz atın. AccountManagement örnek uygulaması aşağıdaki işlemleri gösterir:

  1. Microsoft Kimlik Doğrulama Kitaplığı'nı (MSAL) kullanarak Alma ve önbelleğe alma belirteçlerini kullanarak Microsoft Entra Kimliği'nden bir güvenlik belirteci alın. Kullanıcı henüz oturum açmamışsa Azure kimlik bilgileri istenir.
  2. Microsoft Entra Id'den alınan güvenlik belirteciyle, Hesapla ilişkili aboneliklerin listesi için Azure'ı sorgulamak üzere bir SubscriptionClient oluşturun. Kullanıcı, birden fazla abonelik içeriyorsa listeden bir abonelik seçebilir.
  3. Seçili abonelikle ilişkili kimlik bilgilerini alma.
  4. Kimlik bilgilerini kullanarak bir ResourceManagementClient nesnesi oluşturun.
  5. Kaynak grubu oluşturmak için ResourceManagementClient nesnesi kullanın.
  6. Birkaç Batch hesabı işlemi gerçekleştirmek için BatchManagementClient nesnesi kullanın:
    • Yeni kaynak grubunda bir Batch hesabı oluşturun.
    • Batch hizmetinden yeni oluşturulan hesabı alın.
    • Yeni hesabın hesap anahtarlarını yazdırın.
    • Hesap için yeni bir birincil anahtar yeniden oluşturun.
    • Hesabın kota bilgilerini yazdırın.
    • Aboneliğin kota bilgilerini yazdırın.
    • Abonelik içindeki tüm hesapları yazdırın.
    • Yeni oluşturulan hesabı silin.
  7. Kaynak grubunu silin.

Örnek uygulamayı başarıyla çalıştırmak için önce Azure portalında Microsoft Entra kiracınıza kaydetmeniz ve Azure Resource Manager API'sine izinler vermeniz gerekir. Active Directory ile Batch Management çözümlerinin kimliğini doğrulama bölümünde sağlanan adımları izleyin.

Sonraki adımlar

  • Batch hizmeti iş akışı ve havuzlar, düğümler, işler ve görevler gibi birincil kaynaklar hakkında bilgi edinin.
  • Batch .NET istemci kitaplığı veya Python kullanarak Batch özellikli bir uygulama geliştirmenin temellerini öğrenin. Bu hızlı başlangıçlar, iş yükü dosyası hazırlama ve alma için Azure Depolama'yı kullanarak birden çok işlem düğümünde iş yükü yürütmek üzere Batch hizmetini kullanan örnek bir uygulamada size yol gösterir.