Batch-accounts en -quota beheren met de Batch Management-clientbibliotheek voor .NET

U kunt de overhead voor onderhoud in uw Azure Batch-toepassingen verlagen met behulp van de .NET-bibliotheek van Batch Management om het maken, verwijderen, sleutelbeheer en quotumdetectie van Batch-accounts te automatiseren.

  • Batch-accounts binnen elke regio maken en verwijderen. Als u bijvoorbeeld als onafhankelijke softwareleverancier (ISV) een service opgeeft voor uw clients waaraan elk een afzonderlijk Batch-account voor factureringsdoeleinden is toegewezen, kunt u mogelijkheden voor het maken en verwijderen van accounts toevoegen aan uw klantenportal.
  • Haal accountsleutels programmatisch op en genereer deze opnieuw voor een van uw Batch-accounts. Dit kan u helpen om te voldoen aan beveiligingsbeleid dat periodieke rollover of vervaldatum van accountsleutels afdwingt. Wanneer u meerdere Batch-accounts in verschillende Azure-regio's hebt, verhoogt de automatisering van dit rollover-proces de efficiëntie van uw oplossing.
  • Controleer de accountquota en neem het schattingswerk voor proefversies en fouten om te bepalen welke Batch-accounts welke limieten hebben. Door uw accountquota te controleren voordat u taken start, pools maakt of rekenknooppunten toevoegt, kunt u proactief aanpassen waar of wanneer deze rekenresources worden gemaakt. U kunt bepalen welke accounts quotumverhogingen vereisen voordat extra resources in die accounts worden toegewezen.
  • Combineer functies van andere Azure-services voor een volledige beheerervaring met batchbeheer .NET, Microsoft Entra ID en Azure Resource Manager in dezelfde toepassing. Door deze functies en hun API's te gebruiken, kunt u een probleemloze verificatie-ervaring bieden, de mogelijkheid om resourcegroepen te maken en verwijderen en de mogelijkheden die hierboven worden beschreven voor een end-to-end beheeroplossing.

Notitie

Hoewel dit artikel is gericht op het programmatisch beheer van uw Batch-accounts, -sleutels en -quota, kunt u ook veel van deze activiteiten uitvoeren met behulp van Azure Portal.

Batch-accounts maken en verwijderen

Een van de belangrijkste functies van de Batch Management-API is het maken en verwijderen van Batch-accounts in een Azure-regio. Gebruik hiervoor BatchManagementClient.Account.CreateAsync en DeleteAsync of hun synchrone tegenhangers.

Met het volgende codefragment wordt een account gemaakt, het zojuist gemaakte account opgehaald uit de Batch-service en vervolgens verwijderd. In dit fragment en de andere in dit artikel batchManagementClient is een volledig geïnitialiseerd exemplaar van 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);

Notitie

Voor toepassingen die gebruikmaken van de Batch Management .NET-bibliotheek en de bijbehorende BatchManagementClient-klasse is servicebeheerder of coadministrator-toegang vereist tot het abonnement dat eigenaar is van het Batch-account dat wordt beheerd. Zie de sectie Microsoft Entra-id en het codevoorbeeld AccountManagement voor meer informatie.

Accountsleutels ophalen en opnieuw genereren

Haal primaire en secundaire accountsleutels op uit een Batch-account binnen uw abonnement met behulp van GetKeysAsync. U kunt deze sleutels opnieuw genereren met behulp van 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
            });

Fooi

U kunt een gestroomlijnde verbindingswerkstroom maken voor uw beheertoepassingen. Haal eerst een accountsleutel op voor het Batch-account dat u wilt beheren met GetKeysAsync. Gebruik vervolgens deze sleutel bij het initialiseren van de batch.NET-bibliotheekklasse BatchSharedKeyCredentials , die wordt gebruikt bij het initialiseren van BatchClient.

Quota voor Azure-abonnementen en Batch-accounts controleren

Azure-abonnementen en de afzonderlijke Azure-services, zoals Batch, hebben allemaal standaardquota waarmee het aantal bepaalde entiteiten erin wordt beperkt. Zie Azure-abonnements- en servicelimieten, quota en beperkingen voor de standaardquota voor Azure-abonnementen. Zie Quota en limieten voor de Azure Batch-service voor de standaardquota van de Batch-service. Met behulp van de Batch Management .NET-bibliotheek kunt u deze quota in uw toepassingen controleren. Hiermee kunt u toewijzingsbeslissingen nemen voordat u accounts of rekenresources toevoegt, zoals pools en rekenknooppunten.

Een Azure-abonnement controleren op Batch-accountquota

Voordat u een Batch-account in een regio maakt, kunt u uw Azure-abonnement controleren om te zien of u een account in die regio kunt toevoegen.

In het onderstaande codefragment gebruiken we Eerst ListAsync om een verzameling van alle Batch-accounts op te halen die zich in een abonnement bevinden. Zodra we deze verzameling hebben verkregen, bepalen we hoeveel accounts zich in de doelregio bevinden. Vervolgens gebruiken we GetQuotasAsync om het Batch-accountquotum te verkrijgen en te bepalen hoeveel accounts (indien van toepassing) in die regio kunnen worden gemaakt.

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

In het bovenstaande creds fragment bevindt zich een exemplaar van TokenCredentials. Zie het codevoorbeeld AccountManagement op GitHub voor een voorbeeld van het maken van dit object.

Een Batch-account controleren op quota voor rekenresources

Voordat u rekenresources in uw Batch-oplossing verhoogt, kunt u controleren of de resources die u wilt toewijzen, niet hoger zijn dan de quota van het account. In het onderstaande codefragment worden de quotumgegevens voor het Batch-account met de naam mybatchaccountafgedrukt. In uw eigen toepassing kunt u dergelijke informatie gebruiken om te bepalen of het account de extra resources kan verwerken die moeten worden gemaakt.

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

Belangrijk

Hoewel er standaardquota zijn voor Azure-abonnementen en -services, kunnen veel van deze limieten worden verhoogd door een quotumverhoging aan te vragen in Azure Portal.

Microsoft Entra-id gebruiken met Batch Management .NET

De Batch Management .NET-bibliotheek is een Azure-resourceproviderclient en wordt samen met Azure Resource Manager gebruikt om accountresources programmatisch te beheren. Microsoft Entra-id is vereist voor het verifiëren van aanvragen die zijn gedaan via een Azure-resourceproviderclient, met inbegrip van de Batch Management .NET-bibliotheek en via Azure Resource Manager. Zie Microsoft Entra-id gebruiken om Batch-oplossingen te verifiëren voor informatie over het gebruik van Microsoft Entra-id met de .NET-bibliotheek voor Batch Management.

Voorbeeldproject op GitHub

Als u Batch Management .NET in actie wilt zien, bekijkt u het voorbeeldproject AccountManagement op GitHub. In de voorbeeldtoepassing AccountManagement ziet u de volgende bewerkingen:

  1. Een beveiligingstoken verkrijgen van Microsoft Entra-id met behulp van Acquire and cache tokens using the Microsoft Authentication Library (MSAL). Als de gebruiker nog niet is aangemeld, wordt hij of zij gevraagd om zijn Azure-referenties.
  2. Maak met het beveiligingstoken dat is verkregen van Microsoft Entra ID een SubscriptionClient om een query uit te voeren op Azure voor een lijst met abonnementen die zijn gekoppeld aan het account. De gebruiker kan een abonnement selecteren in de lijst als het meer dan één abonnement bevat.
  3. Referenties ophalen die zijn gekoppeld aan het geselecteerde abonnement.
  4. Maak een ResourceManagementClient-object met behulp van de referenties.
  5. Gebruik een ResourceManagementClient-object om een resourcegroep te maken.
  6. Gebruik een BatchManagementClient-object om verschillende Batch-accountbewerkingen uit te voeren:
    • Maak een Batch-account in de nieuwe resourcegroep.
    • Haal het zojuist gemaakte account op uit de Batch-service.
    • Druk de accountsleutels voor het nieuwe account af.
    • Genereer een nieuwe primaire sleutel voor het account.
    • Druk de quotumgegevens voor het account af.
    • Druk de quotumgegevens voor het abonnement af.
    • Alle accounts in het abonnement afdrukken.
    • Verwijder het zojuist gemaakte account.
  7. Verwijder de resourcegroep.

Als u de voorbeeldtoepassing wilt uitvoeren, moet u deze eerst registreren bij uw Microsoft Entra-tenant in Azure Portal en machtigingen verlenen aan de Azure Resource Manager-API. Volg de stappen in Batch Management-oplossingen verifiëren met Active Directory.

Volgende stappen

  • Meer informatie over de Werkstroom van de batch-service en primaire resources als pools, knooppunten, jobs en taken.
  • Lees de basisbeginselen van het ontwikkelen van een voor Batch geschikte toepassing met behulp van de clientbibliotheek Batch .NET of Python. Deze quickstarts begeleiden u door een voorbeeldtoepassing die gebruikmaakt van de Batch-service om een workload uit te voeren op meerdere rekenknooppunten, met behulp van Azure Storage voor het faseren en ophalen van workloadbestanden. git pus