Zarządzanie kontami i limitami przydziału usługi Batch przy użyciu biblioteki klienta zarządzania usługą Batch dla programu .NET
Aby zautomatyzować tworzenie, usuwanie, zarządzanie kluczami i odnajdywanie przydziałów, można obniżyć koszty konserwacji w aplikacjach usługi Azure Batch przy użyciu biblioteki .NET zarządzania usługą Batch.
- Tworzenie i usuwanie kont usługi Batch w dowolnym regionie. Jeśli na przykład jako niezależny dostawca oprogramowania (ISV) udostępniasz usługę dla klientów, w których każdy z nich ma przypisane oddzielne konto usługi Batch do celów rozliczeniowych, możesz dodać możliwości tworzenia i usuwania kont do portalu klienta.
- Programowe pobieranie i ponowne generowanie kluczy kont dla dowolnego konta usługi Batch. Może to pomóc w przestrzeganiu zasad zabezpieczeń, które wymuszają okresowe przerzucanie lub wygasanie kluczy kont. Jeśli masz kilka kont usługi Batch w różnych regionach świadczenia usługi Azure, automatyzacja tego procesu przerzucania zwiększa wydajność rozwiązania.
- Sprawdź limity przydziałów kont i wykonaj odgadnięcie prób i błędu podczas określania, które konta usługi Batch mają jakie limity. Sprawdzając limity przydziału konta przed rozpoczęciem zadań, tworzeniem pul lub dodawaniem węzłów obliczeniowych, możesz aktywnie dostosowywać lokalizację lub czas tworzenia tych zasobów obliczeniowych. Możesz określić, które konta wymagają zwiększenia limitu przydziału przed przydzielaniem dodatkowych zasobów na tych kontach.
- Połącz funkcje innych usług platformy Azure w celu uzyskania w pełni funkcjonalnego środowiska zarządzania przy użyciu platformy .NET zarządzania usługą Batch, identyfikatora Microsoft Entra i usługi Azure Resource Manager razem w tej samej aplikacji. Korzystając z tych funkcji i ich interfejsów API, możesz zapewnić bezproblemowe środowisko uwierzytelniania, możliwość tworzenia i usuwania grup zasobów oraz możliwości opisanych powyżej dla kompleksowego rozwiązania do zarządzania.
Uwaga
Chociaż ten artykuł koncentruje się na programowym zarządzaniu kontami, kluczami i limitami przydziału usługi Batch, można również wykonać wiele z tych działań przy użyciu witryny Azure Portal.
Tworzenie i usuwanie kont usługi Batch
Jedną z podstawowych funkcji interfejsu API zarządzania usługą Batch jest utworzenie i usunięcie kont usługi Batch w regionie świadczenia usługi Azure. W tym celu należy użyć klasy BatchAccountCollection.CreateOrUpdate i Delete lub ich odpowiedników asynchronicznych.
Poniższy fragment kodu tworzy konto, uzyskuje nowo utworzone konto z usługi Batch, a następnie usuwa je.
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);
Uwaga
Aplikacje korzystające z biblioteki .NET zarządzania usługą Batch wymagają dostępu administratora usługi lub współadministratora do subskrypcji, która jest właścicielem konta usługi Batch do zarządzania. Aby uzyskać więcej informacji, zobacz sekcję Microsoft Entra ID i przykładowy kod AccountManagement .
Pobieranie i ponowne generowanie kluczy kont
Uzyskaj klucze konta podstawowego i pomocniczego z dowolnego konta usługi Batch w ramach subskrypcji przy użyciu funkcji GetKeys. Te klucze można wygenerować ponownie przy użyciu funkcji 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);
Napiwek
Możesz utworzyć usprawniony przepływ pracy połączenia dla aplikacji do zarządzania. Najpierw uzyskaj klucz konta dla konta usługi Batch, którym chcesz zarządzać za pomocą GetKeys. Następnie użyj tego klucza podczas inicjowania klasy BatchSharedKeyCredentials biblioteki platformy .NET, która jest używana podczas inicjowania klasy BatchClient.
Sprawdzanie limitów przydziału subskrypcji platformy Azure i konta usługi Batch
Subskrypcje platformy Azure i poszczególne usługi platformy Azure, takie jak Batch, mają domyślne limity przydziału, które ograniczają liczbę określonych jednostek w nich. Aby uzyskać domyślne limity przydziału dla subskrypcji platformy Azure, zobacz Limity subskrypcji i usług platformy Azure, limity przydziału i ograniczenia. Aby uzyskać domyślne przydziały usługi Batch, zobacz Limity przydziału i limity dla usługi Azure Batch. Korzystając z biblioteki .NET zarządzania usługą Batch, możesz sprawdzić te limity przydziału w aplikacjach. Dzięki temu można podejmować decyzje dotyczące alokacji przed dodaniem kont lub zasobów obliczeniowych, takich jak pule i węzły obliczeniowe.
Sprawdzanie subskrypcji platformy Azure pod kątem przydziałów kont usługi Batch
Przed utworzeniem konta usługi Batch w regionie możesz sprawdzić subskrypcję platformy Azure, aby sprawdzić, czy możesz dodać konto w tym regionie.
W poniższym fragmencie kodu najpierw użyjemy polecenia GetBatchAccounts , aby pobrać kolekcję wszystkich kont usługi Batch znajdujących się w ramach subskrypcji. Po uzyskaniu tej kolekcji określimy, ile kont znajduje się w regionie docelowym. Następnie użyjemy polecenia GetBatchQuotas , aby uzyskać limit przydziału konta usługi Batch i określić, ile kont (jeśli istnieje) można utworzyć w tym regionie.
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);
W powyższym creds
fragmencie kodu jest wystąpieniem tokenCredentials. Aby zobaczyć przykład tworzenia tego obiektu, zobacz przykładowy kod AccountManagement w witrynie GitHub.
Sprawdzanie konta usługi Batch pod kątem przydziałów zasobów obliczeniowych
Przed zwiększeniem zasobów obliczeniowych w rozwiązaniu usługi Batch możesz sprawdzić, czy zasoby, które chcesz przydzielić, nie przekraczają limitów przydziału konta. W poniższym fragmencie kodu wyświetlamy informacje o limitach przydziału dla konta usługi Batch o nazwie mybatchaccount
. We własnej aplikacji można użyć takich informacji, aby określić, czy konto może obsłużyć dodatkowe zasoby do utworzenia.
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);
Ważne
Chociaż istnieją domyślne limity przydziału dla subskrypcji i usług platformy Azure, wiele z tych limitów można podnieść , żądając zwiększenia limitu przydziału w witrynie Azure Portal.
Używanie identyfikatora Entra firmy Microsoft z platformą .NET do zarządzania usługą Batch
Biblioteka .NET zarządzania usługą Batch jest klientem dostawcy zasobów platformy Azure i jest używana razem z usługą Azure Resource Manager do programowego zarządzania zasobami kont. Identyfikator Entra firmy Microsoft jest wymagany do uwierzytelniania żądań wysyłanych za pośrednictwem dowolnego klienta dostawcy zasobów platformy Azure, w tym biblioteki .NET zarządzania usługą Batch oraz za pośrednictwem usługi Azure Resource Manager. Aby uzyskać informacje o korzystaniu z identyfikatora Entra firmy Microsoft z biblioteką .NET zarządzania usługą Batch, zobacz Używanie identyfikatora Entra firmy Microsoft do uwierzytelniania rozwiązań usługi Batch.
Przykładowy projekt w witrynie GitHub
Aby zobaczyć, jak działa platforma .NET do zarządzania usługą Batch, zapoznaj się z przykładowym projektem AccountManagement w witrynie GitHub. Przykładowa aplikacja AccountManagement demonstruje następujące operacje:
- Uzyskaj token zabezpieczający z identyfikatora Entra firmy Microsoft przy użyciu tokenów uzyskiwania i buforowania przy użyciu biblioteki Microsoft Authentication Library (MSAL). Jeśli użytkownik nie jest jeszcze zalogowany, zostanie wyświetlony monit o podanie poświadczeń platformy Azure.
- Za pomocą tokenu zabezpieczającego uzyskanego z identyfikatora Entra firmy Microsoft utwórz element SubscriptionClient , aby wysłać zapytanie do platformy Azure o listę subskrypcji skojarzonych z kontem. Użytkownik może wybrać subskrypcję z listy, jeśli zawiera więcej niż jedną subskrypcję.
- Pobieranie poświadczeń skojarzonych z wybraną subskrypcją.
- Utwórz obiekt ResourceManagementClient przy użyciu poświadczeń.
- Użyj obiektu ResourceManagementClient, aby utworzyć grupę zasobów.
- Użyj obiektu BatchManagementClient, aby wykonać kilka operacji konta usługi Batch:
- Utwórz konto usługi Batch w nowej grupie zasobów.
- Pobierz nowo utworzone konto z usługi Batch.
- Wydrukuj klucze konta dla nowego konta.
- Wygeneruj ponownie nowy klucz podstawowy dla konta.
- Wyświetl informacje o limitach przydziału dla konta.
- Wyświetl informacje o limitach przydziału dla subskrypcji.
- Wydrukuj wszystkie konta w ramach subskrypcji.
- Usuń nowo utworzone konto.
- Usuń grupę zasobów.
Aby pomyślnie uruchomić przykładową aplikację, musisz najpierw zarejestrować ją w dzierżawie firmy Microsoft Entra w witrynie Azure Portal i udzielić uprawnień do interfejsu API usługi Azure Resource Manager. Postępuj zgodnie z instrukcjami podanymi w temacie Uwierzytelnianie rozwiązań do zarządzania usługą Batch za pomocą usługi Active Directory.
Następne kroki
- Dowiedz się więcej o przepływie pracy usługi Batch i zasobach podstawowych, takich jak pule, węzły, zadania i zadania.
- Poznaj podstawy tworzenia aplikacji wykorzystujących usługę Batch za pomocą biblioteki klienta Batch .NET lub języka Python. Te przewodniki Szybki start prowadzą przez przykładową aplikację, która używa usługi Batch do wykonywania obciążenia na wielu węzłach obliczeniowych przy użyciu usługi Azure Storage na potrzeby przemieszczania i pobierania plików obciążeń.