Mengelola akun dan kuota Batch dengan pustaka klien Manajemen Batch untuk .NET
Anda dapat menurunkan biaya tambahan pemeliharaan di aplikasi Azure Batch dengan menggunakan pustaka Batch Management .NET untuk automasi pembuatan akun Batch, penghapusan, manajemen kunci, dan penemuan kuota.
- Buat dan hapus akun Batch di wilayah mana pun. Jika, sebagai vendor perangkat lunak independen (ISV) misalnya, Anda menyediakan layanan untuk klien yang masing-masing diberi akun Batch terpisah untuk tujuan penagihan, Anda dapat menambahkan kemampuan pembuatan dan penghapusan akun ke portal pelanggan.
- Ambil dan regenerasi kunci akun secara terprogram untuk salah satu akun Batch Anda. Ini dapat membantu Anda mematuhi kebijakan keamanan yang memberlakukan penerusan berkala atau kedaluwarsa kunci akun. Ketika Anda memiliki beberapa akun Batch di berbagai wilayah Azure, automasi proses penerusan ini meningkatkan efisiensi solusi Anda.
- Periksa kuota akun dan buang tebakan trial-and-error atas akun Batch mana yang memiliki batasan berapa. Dengan memeriksa kuota akun anda sebelum memulai pekerjaan, membuat kumpulan, atau menambahkan simpul komputasi, kamu dapat secara proaktif menyesuaikan bilamana atau kapan sumber daya komputasi ini dibuat. Anda dapat menentukan akun mana yang memerlukan penambahan kuota sebelum mengalokasikan sumber daya tambahan di akun tersebut.
- Gabungkan fitur layanan Azure lainnya untuk pengalaman manajemen berfungsi lengkap dengan menggunakan Batch Management .NET, MICROSOFT Entra ID, dan Azure Resource Manager bersama-sama dalam aplikasi yang sama. Dengan menggunakan fitur ini dan API mereka, Anda dapat memberikan pengalaman autentikasi tanpa gesekan, kemampuan untuk membuat dan menghapus grup sumber daya, dan kemampuan yang dijelaskan di atas untuk solusi manajemen ujung-ke-ujung.
Catatan
Meski artikel ini berfokus pada manajemen terprogram akun Batch, kunci, dan kuota, Anda juga dapat melakukan banyak aktivitas ini dengan menggunakan portal Azure.
Buat dan hapus akun Batch
Salah satu fitur utama Batch Management API adalah membuat dan menghapus akun Batch di wilayah Azure. Untuk melakukannya, gunakan BatchAccountCollection.CreateOrUpdate dan Delete, atau rekan asinkron mereka.
Cuplikan kode berikut membuat akun, mendapatkan akun yang baru dibuat dari layanan Batch, lalu menghapusnya.
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);
Catatan
Aplikasi yang menggunakan pustaka Batch Management .NET memerlukan administrator layanan atau akses koadministrator ke langganan yang memiliki akun Batch untuk dikelola. Untuk informasi selengkapnya, lihat bagian ID Microsoft Entra dan sampel kode AccountManagement .
Ambil dan regenerasi kunci akun
Dapatkan kunci akun primer dan sekunder dari akun Batch apa pun dalam langganan Anda dengan menggunakan GetKeys. Anda dapat meregenerasi kunci tersebut dengan menggunakan 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);
Tip
Anda dapat membuat alur kerja koneksi yang disederhanakan untuk aplikasi manajemen Anda. Pertama, dapatkan kunci akun untuk akun Batch yang ingin Anda kelola dengan GetKeys. Kemudian, gunakan kunci ini saat menginisialisasi kelas pustaka Batch .NET BatchSharedKeyCredentials, yang digunakan saat menginisialisasi BatchClient.
Periksa langganan Azure dan kuota akun Batch
Langganan Azure dan masing-masing layanan Azure seperti Batch semuanya memiliki kuota default yang membatasi jumlah entitas tertentu di dalamnya. Untuk mempelajari lebih lanjut tentang cara kuota dikelola untuk langganan Azure, lihat Batas, kuota, dan pembatasan langganan dan layanan Azure. Untuk kuota default layanan Batch, lihat Kuota dan batasan untuk layanan Azure Batch. Dengan menggunakan pustaka Batch Management .NET, Anda bisa mengecek kuota ini di aplikasi. Ini memungkinkan Anda untuk membuat keputusan alokasi sebelum Anda menambahkan akun atau menghitung sumber daya seperti kumpulan dan simpul komputasi.
Periksa langganan Azure untuk kuota akun Batch
Sebelum membuat akun Batch di wilayah, Anda bisa memeriksa langganan Azure untuk melihat apakah Anda bisa menambahkan akun di wilayah tersebut.
Dalam cuplikan kode di bawah ini, pertama-tama kita menggunakan GetBatchAccounts untuk mendapatkan koleksi semua akun Batch yang berada dalam langganan. Setelah mendapatkan koleksi ini, kita tentukan berapa banyak akun yang berada di wilayah target. Kemudian kita menggunakan GetBatchQuotas untuk mendapatkan kuota akun Batch dan menentukan berapa banyak akun (jika ada) yang dapat dibuat di wilayah tersebut.
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);
Dalam cuplikan di atas, creds
adalah contoh TokenCredentials. Untuk melihat contoh pembuatan objek ini, lihat sampel kode AccountManagement di GitHub.
Periksa akun Batch untuk kuota sumber daya komputasi
Sebelum meningkatkan sumber daya komputasi dalam solusi Batch, Anda dapat memeriksa untuk memastikan sumber daya yang ingin Anda alokasikan tidak akan melebihi kuota akun. Dalam cuplikan kode di bawah ini, kami mencetak informasi kuota untuk akun Batch bernama mybatchaccount
. Dalam aplikasi Anda sendiri, Anda dapat menggunakan informasi tersebut untuk menentukan apakah akun dapat menangani sumber daya tambahan yang akan dibuat.
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);
Penting
Meskipun ada kuota default untuk langganan dan layanan Azure, banyak dari batas ini dapat dinaikkan dengan meminta peningkatan kuota di portal Azure.
Gunakan MICROSOFT Entra ID dengan Batch Management .NET
Pustaka Batch Management .NET adalah klien penyedia sumber daya Azure, dan digunakan bersama dengan Azure Resource Manager untuk mengelola sumber daya akun secara terprogram. ID Microsoft Entra diperlukan untuk mengautentikasi permintaan yang dibuat melalui klien penyedia sumber daya Azure apa pun, termasuk pustaka .NET Manajemen Batch, dan melalui Azure Resource Manager. Untuk informasi tentang menggunakan ID Microsoft Entra dengan pustaka .NET Manajemen Batch, lihat Menggunakan ID Microsoft Entra untuk mengautentikasi solusi Batch.
Proyek sampel di GitHub
Untuk melihat Batch Management .NET beraksi, lihat proyek sampel AccountManagement di GitHub. Aplikasi sampel AccountManagement menunjukkan operasi berikut:
- Dapatkan token keamanan dari ID Microsoft Entra dengan menggunakan token Acquire dan cache menggunakan Microsoft Authentication Library (MSAL). Jika pengguna belum masuk, mereka akan dimintai kredensial Azure.
- Dengan token keamanan yang diperoleh dari ID Microsoft Entra, buat SubscriptionClient untuk mengkueri Azure untuk daftar langganan yang terkait dengan akun tersebut. Pengguna dapat memilih langganan dari daftar jika berisi lebih dari satu langganan.
- Dapatkan kredensial yang terkait dengan langganan yang dipilih.
- Buat objek ResourceManagementClient dengan menggunakan kredensial.
- Gunakan objek ResourceManagementClient untuk membuat grup sumber daya.
- Gunakan objek BatchManagementClient untuk melakukan beberapa operasi akun Batch:
- Buat akun Batch di grup sumber daya baru.
- Dapatkan akun yang baru dibuat dari layanan Batch.
- Cetak kunci akun untuk akun baru.
- Regenerasi kunci primer baru untuk akun tersebut.
- Cetak informasi kuota untuk akun tersebut.
- Cetak informasi kuota untuk langganan.
- Cetak semua akun dalam langganan.
- Hapus akun yang baru dibuat.
- Hapus grup sumber daya.
Agar aplikasi sampel berhasil dijalankan, Anda harus terlebih dahulu mendaftarkannya dengan penyewa Microsoft Entra Anda di portal Azure dan memberikan izin ke AZURE Resource Manager API. Ikuti langkah-langkah yang disediakan dalam Autentikasi solusi Batch Management dengan Direktori Aktif.
Langkah berikutnya
- Pelajari tentang Alur kerja layanan Batch dan sumber daya primer seperti kumpulan, simpul, pekerjaan, dan tugas.
- Pelajari dasar-dasar pengembangan aplikasi berkemampuan Batch menggunakan pustaka klien Batch .NET atau Python. Mulai cepat ini memandu Anda memahami aplikasi sampel yang menggunakan layanan Batch untuk menjalankan beban kerja pada beberapa simpul komputasi, menggunakan Azure Storage untuk penahapan dan pengambilan file beban kerja.