Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Możesz obniżyć nakłady związane z utrzymaniem w aplikacjach Azure Batch, używając biblioteki Batch Management .NET do automatyzacji tworzenia i usuwania kont Batch, zarządzania kluczami oraz odkrywania przydziałów.
- 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.
- Programatyczne pobieranie i ponowne generowanie kluczy kont dla dowolnego z Twoich kont Batch. Może to pomóc w przestrzeganiu zasad zabezpieczeń, które wymuszają okresową rotację 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 kont i wyeliminuj zgadywanie metodą prób i błędów 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, aby uzyskać bogate środowisko zarządzania, używając Batch Management .NET, Microsoft Entra ID i 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
pl-PL: Chociaż ten artykuł koncentruje się na programatycznym zarządzaniu kontami, kluczami i limitami przydziału usługi Batch, można również wykonać wiele z tych działań przy użyciu portalu Azure.
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 do 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ć zintegrowany przepływ pracy dotyczący połączeń dla aplikacji zarządzających. 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 klienta 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 Przydziały i limity usługi Azure Batch. Korzystając z biblioteki .NET do zarządzania Batch, możesz sprawdzić te kwoty 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.
Sprawdź subskrypcję Azure pod kątem limitów kont 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żywamy funkcji GetBatchAccounts, aby pobrać kolekcję wszystkich kont Batch znajdujących się w 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życie Microsoft Entra ID z Batch Management .NET
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 Microsoft Entra ID, używając uzyskuj i buforuj tokeny 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 Microsoft Entra w portalu Azure 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 i głównych zasobach usługi Batch, takich jak pule, węzły, prace i zadania.
- Poznaj podstawy tworzenia aplikacji wykorzystujących usługę Batch za pomocą biblioteki klienta Batch .NET lub języka Python. Te szybkie przewodniki 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 do przechowywania i odzyskiwania plików obciążeń.