Správa účtů a kvót služby Batch s využitím klientské knihovny pro správu služby Batch pro .NET

Režijní náklady na údržbu v aplikacích Azure Batch můžete snížit pomocí knihovny Batch Management .NET k automatizaci vytváření, odstraňování, správy klíčů a zjišťování kvót účtu Batch.

  • Vytvořte a odstraňte účty Batch v libovolné oblasti. Pokud jako nezávislý dodavatel softwaru (ISV) například poskytujete služby pro klienty, ve kterých je každému přiřazen samostatný účet Batch pro účely fakturace, můžete na zákaznický portál přidat možnosti vytvoření a odstranění účtu.
  • Klíče účtu můžete načíst a znovu vygenerovat programově pro libovolný z vašich účtů Batch. To vám může pomoct s dodržováním zásad zabezpečení, které vynucuje pravidelné vrácení nebo vypršení platnosti klíčů účtu. Pokud máte několik účtů Batch v různých oblastech Azure, automatizace tohoto procesu přechodu zvyšuje efektivitu vašeho řešení.
  • Zkontrolujte kvóty účtů a využíte odhad zkušebních a chyb a zjistěte, které účty Batch mají jaké limity. Kontrolou kvót účtu před spuštěním úloh, vytvořením fondů nebo přidáním výpočetních uzlů můžete proaktivně upravit, kde nebo kdy se tyto výpočetní prostředky vytvářejí. Před přidělením dalších prostředků v těchto účtech můžete určit, které účty vyžadují zvýšení kvóty.
  • Zkombinujte funkce jiných služeb Azure pro plnohodnotné prostředí pro správu pomocí rozhraní BATCH Management .NET, Microsoft Entra ID a Azure Resource Manageruspolečně ve stejné aplikaci. Díky těmto funkcím a jejich rozhraním API můžete poskytovat bezproblémové prostředí ověřování, možnost vytvářet a odstraňovat skupiny prostředků a možnosti popsané výše pro ucelené řešení pro správu.

Poznámka:

I když se tento článek zaměřuje na programovou správu účtů Batch, klíčů a kvót, můžete mnoho z těchto aktivit provádět také pomocí webu Azure Portal.

Vytvoření a odstranění účtů Batch

Jednou z primárních funkcí rozhraní API služby Batch Management je vytvoření a odstranění účtů Batch v oblasti Azure. K tomu použijte BatchManagementClient.Account.CreateAsync a DeleteAsync nebo jejich synchronní protějšky.

Následující fragment kódu vytvoří účet, získá nově vytvořený účet ze služby Batch a pak ho odstraní. V tomto fragmentu kódu a dalších v tomto článku batchManagementClient je plně inicializovaná instance 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);

Poznámka:

Aplikace, které používají knihovnu Batch Management .NET a její třídu BatchManagementClient, vyžadují správce služeb nebo spolusprávce přístupu k předplatnému, které vlastní účet Batch, aby bylo možné spravovat. Další informace naleznete v části Microsoft Entra ID a ukázka kódu AccountManagement .

Načtení a opětovné vygenerace klíčů účtu

Získejte primární a sekundární klíče účtu z libovolného účtu Batch v rámci vašeho předplatného pomocí getKeysAsync. Tyto klíče můžete znovu vygenerovat pomocí funkce 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
            });

Tip

Pro aplikace pro správu můžete vytvořit zjednodušený pracovní postup připojení. Nejprve získejte klíč účtu Batch, který chcete spravovat pomocí GetKeysAsync. Tento klíč pak použijte při inicializaci třídy BatchSharedKeyCredentials knihovny Batch .NET, která se používá při inicializaci BatchClient.

Kontrola kvót předplatného Azure a účtu Batch

Předplatná Azure a jednotlivé služby Azure, jako je Batch, mají výchozí kvóty, které omezují počet určitých entit v nich. Výchozí kvóty pro předplatná Azure najdete v tématu Limity, kvóty a omezení předplatného a služeb Azure. Výchozí kvóty služby Batch najdete v tématu Kvóty a omezení služby Azure Batch. Pomocí knihovny Batch Management .NET můžete tyto kvóty zkontrolovat ve svých aplikacích. To vám umožní rozhodovat o přidělení před přidáním účtů nebo výpočetních prostředků, jako jsou fondy a výpočetní uzly.

Kontrola kvót účtu Batch v předplatném Azure

Před vytvořením účtu Batch v oblasti můžete zkontrolovat předplatné Azure a zjistit, jestli v této oblasti můžete přidat účet.

V následujícím fragmentu kódu nejprve použijeme ListAsync k získání kolekce všech účtů Batch, které jsou v rámci předplatného. Jakmile tuto kolekci získáme, určíme, kolik účtů je v cílové oblasti. Pak použijeme GetQuotasAsync k získání kvóty účtu Batch a určíme, kolik účtů (pokud existuje) lze v této oblasti vytvořit.

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

Ve výše uvedeném creds fragmentu kódu je instance TokenCredentials. Příklad vytvoření tohoto objektu najdete v ukázce kódu AccountManagement na GitHubu.

Kontrola kvót výpočetních prostředků v účtu Batch

Před zvýšením výpočetních prostředků v řešení Batch můžete zkontrolovat, jestli prostředky, které chcete přidělit, nepřekročí kvóty účtu. V následujícím fragmentu kódu vytiskneme informace o kvótách pro účet Batch s názvem mybatchaccount. Tyto informace můžete použít ve vlastní aplikaci k určení, jestli může účet zpracovávat další prostředky, které se mají vytvořit.

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

Důležité

Přestože existují výchozí kvóty pro předplatná a služby Azure, mnohé z těchto limitů je možné zvýšit vyžádáním navýšení kvóty na webu Azure Portal.

Použití ID Microsoft Entra s rozhraním Batch Management .NET

Knihovna Batch Management .NET je klient poskytovatele prostředků Azure a používá se společně s Azure Resource Managerem ke správě prostředků účtů prostřednictvím kódu programu. K ověření požadavků provedených prostřednictvím libovolného klienta poskytovatele prostředků Azure, včetně knihovny .NET služby Batch Management a prostřednictvím Azure Resource Manageru, se vyžaduje ID Microsoft Entra. Informace o použití Microsoft Entra ID s knihovnou Batch Management .NET naleznete v tématu Použití Microsoft Entra ID k ověřování řešení Batch.

Ukázkový projekt na GitHubu

Pokud chcete zobrazit batch Management .NET v akci, podívejte se na ukázkový projekt AccountManagement na GitHubu. Ukázková aplikace AccountManagement ukazuje následující operace:

  1. Získání tokenu zabezpečení z Microsoft Entra ID pomocí získání a ukládání tokenů do mezipaměti pomocí knihovny MSAL (Microsoft Authentication Library). Pokud uživatel ještě není přihlášený, zobrazí se výzva k zadání přihlašovacích údajů Azure.
  2. S tokenem zabezpečení získaným z ID Microsoft Entra vytvořte SubscriptionClient pro dotazování Azure na seznam předplatných přidružených k účtu. Uživatel může ze seznamu vybrat předplatné, pokud obsahuje více než jedno předplatné.
  3. Získejte přihlašovací údaje přidružené k vybranému předplatnému.
  4. Pomocí přihlašovacích údajů vytvořte objekt ResourceManagementClient .
  5. K vytvoření skupiny prostředků použijte objekt ResourceManagementClient.
  6. K provedení několika operací účtu Batch použijte objekt BatchManagementClient:
    • Vytvořte účet Batch v nové skupině prostředků.
    • Získejte nově vytvořený účet ze služby Batch.
    • Vytiskněte klíče účtu pro nový účet.
    • Znovu vygenerujte nový primární klíč pro účet.
    • Vytiskněte informace o kvótách pro účet.
    • Vytiskněte informace o kvótách předplatného.
    • Vytiskněte všechny účty v rámci předplatného.
    • Odstraňte nově vytvořený účet.
  7. Odstraňte skupinu prostředků.

Pokud chcete ukázkovou aplikaci spustit úspěšně, musíte ji nejprve zaregistrovat v tenantovi Microsoft Entra na webu Azure Portal a udělit oprávnění rozhraní API Azure Resource Manageru. Postupujte podle kroků uvedených v řešeních pro ověřování služby Batch Management ve službě Active Directory.

Další kroky