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 BatchManagementClient.Account.CreateAsync i DeleteAsync lub ich synchronicznych odpowiedników.

Poniższy fragment kodu tworzy konto, uzyskuje nowo utworzone konto z usługi Batch, a następnie usuwa je. W tym fragmencie kodu i innych w tym artykule batchManagementClient jest w pełni zainicjowane wystąpienie klasy BatchManagementClient.

// Create a new Batch account
await batchManagementClient.Account.CreateAsync("MyResourceGroup",
    "mynewaccount",
    new BatchAccountCreateParameters() { Location = "West US" });

// Get the new account from the Batch service
AccountResource account = await batchManagementClient.Account.GetAsync(
    "MyResourceGroup",
    "mynewaccount");

// Delete the account
await batchManagementClient.Account.DeleteAsync("MyResourceGroup", account.Name);

Uwaga

Aplikacje korzystające z biblioteki .NET zarządzania usługą Batch i jej klasy BatchManagementClient 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 podstawowe i pomocnicze klucze konta z dowolnego konta usługi Batch w ramach subskrypcji przy użyciu polecenia GetKeysAsync. Te klucze można wygenerować ponownie za pomocą polecenia RegenerateKeyAsync.

// Get and print the primary and secondary keys
BatchAccountGetKeyResult accountKeys =
    await batchManagementClient.Account.GetKeysAsync(
        "MyResourceGroup",
        "mybatchaccount");
Console.WriteLine("Primary key:   {0}", accountKeys.Primary);
Console.WriteLine("Secondary key: {0}", accountKeys.Secondary);

// Regenerate the primary key
BatchAccountRegenerateKeyResponse newKeys =
    await batchManagementClient.Account.RegenerateKeyAsync(
        "MyResourceGroup",
        "mybatchaccount",
        new BatchAccountRegenerateKeyParameters() {
            KeyName = AccountKeyType.Primary
            });

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ą polecenia GetKeysAsync. 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 narzędzia ListAsync , 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 metody GetQuotasAsync , aby uzyskać limit przydziału konta usługi Batch i określić, ile kont (jeśli istnieje) można utworzyć w tym regionie.

// Get a collection of all Batch accounts within the subscription
BatchAccountListResponse listResponse =
        await batchManagementClient.BatchAccount.ListAsync(new AccountListParameters());
IList<AccountResource> accounts = listResponse.Accounts;
Console.WriteLine("Total number of Batch accounts under subscription id {0}:  {1}",
    creds.SubscriptionId,
    accounts.Count);

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

// Get the account quota for the specified region
SubscriptionQuotasGetResponse quotaResponse = await batchManagementClient.Location.GetQuotasAsync(region);
Console.WriteLine("Account quota for {0} region: {1}", region, quotaResponse.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.", quotaResponse.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.

// First obtain the Batch account
BatchAccountGetResponse getResponse =
    await batchManagementClient.Account.GetAsync("MyResourceGroup", "mybatchaccount");
AccountResource account = getResponse.Resource;

// Now print the compute resource quotas for the account
Console.WriteLine("Core quota: {0}", account.Properties.CoreQuota);
Console.WriteLine("Pool quota: {0}", account.Properties.PoolQuota);
Console.WriteLine("Active job and job schedule quota: {0}", account.Properties.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:

  1. 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.
  2. 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ę.
  3. Pobieranie poświadczeń skojarzonych z wybraną subskrypcją.
  4. Utwórz obiekt ResourceManagementClient przy użyciu poświadczeń.
  5. Użyj obiektu ResourceManagementClient, aby utworzyć grupę zasobów.
  6. 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.
  7. 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 korzysta z usługi Batch do wykonywania obciążenia w wielu węzłach obliczeniowych przy użyciu usługi Azure Storage na potrzeby przemieszczania i pobierania plików obciążeń.