Gestire le quote e gli account Batch con la libreria client di gestione Batch per .NETManage Batch accounts and quotas with the Batch Management client library for .NET

È possibile ridurre il sovraccarico di manutenzione nelle applicazioni Azure Batch usando la libreria Batch Management .NET per automatizzare le operazioni di creazione ed eliminazione di account Batch, gestione delle chiavi e individuazione delle quote.You can lower maintenance overhead in your Azure Batch applications by using the Batch Management .NET library to automate Batch account creation, deletion, key management, and quota discovery.

  • Creare ed eliminare account Batch in qualsiasi area.Create and delete Batch accounts within any region. Se, ad esempio, un fornitore di software indipendente (ISV) offre un servizio per cui a ogni cliente viene assegnato un account Batch separato per la fatturazione, è possibile aggiungere funzionalità di creazione ed eliminazione di account al portale per i clienti.If, as an independent software vendor (ISV) for example, you provide a service for your clients in which each is assigned a separate Batch account for billing purposes, you can add account creation and deletion capabilities to your customer portal.
  • Recuperare e rigenerare chiavi di account a livello di programmazione per qualsiasi account Batch.Retrieve and regenerate account keys programmatically for any of your Batch accounts. Questa operazione consente di conformarsi ai criteri di sicurezza che impongono rollover periodici o la scadenza delle chiavi dell'account.This can help you comply with security policies that enforce periodic rollover or expiry of account keys. In presenza di numerosi account Batch in diverse aree di Azure, l'automazione del processo di rollover permette di aumentare l'efficienza della soluzione.When you have several Batch accounts in various Azure regions, automation of this rollover process increases your solution's efficiency.
  • Controllare le quote degli account e determinare senza errori i limiti dei singoli account Batch.Check account quotas and take the trial-and-error guesswork out of determining which Batch accounts have what limits. Il controllo delle quote degli account prima di avviare processi, creare pool o aggiungere nodi di calcolo permette di stabilire attivamente dove e quando creare risorse di calcolo.By checking your account quotas before starting jobs, creating pools, or adding compute nodes, you can proactively adjust where or when these compute resources are created. È possibile determinare quali account richiedono un aumento della quota prima dell'allocazione di risorse aggiuntive in tali account.You can determine which accounts require quota increases before allocating additional resources in those accounts.
  • Integrare funzionalità di altri servizi di Azure per un'esperienza di gestione completa sfruttando i vantaggi di Batch Management .NET, Azure Active Directory e Azure Resource Manager nella stessa applicazione.Combine features of other Azure services for a full-featured management experience--by using Batch Management .NET, Azure Active Directory, and the Azure Resource Manager together in the same application. Usando queste funzionalità e le relative API è possibile eliminare i problemi di autenticazione, consentire la creazione e l'eliminazione di gruppi di risorse e fornire le funzionalità descritte in precedenza per una soluzione di gestione end-to-end.By using these features and their APIs, you can provide a frictionless authentication experience, the ability to create and delete resource groups, and the capabilities that are described above for an end-to-end management solution.

Nota

Questo articolo è incentrato sulla gestione di quote, chiavi e account Batch a livello di codice, ma è possibile eseguire molte di queste attività usando il portale di Azure. Per altre informazioni, vedere Creare un account Azure Batch usando il portale di Azure e Quote e limiti per il servizio Azure Batch.

Creare ed eliminare account BatchCreate and delete Batch accounts

Come accennato, una delle principali funzionalità dell'API di gestione per Batch è la creazione ed eliminazione di account Batch in un'area di Azure.As mentioned, one of the primary features of the Batch Management API is to create and delete Batch accounts in an Azure region. A questo scopo, usare BatchManagementClient.Account.CreateAsync e DeleteAsync o le relative controparti sincrone.To do so, use BatchManagementClient.Account.CreateAsync and DeleteAsync, or their synchronous counterparts.

Il frammento di codice seguente crea un account, ottiene l'account appena creato dal servizio Batch e quindi lo elimina.The following code snippet creates an account, obtains the newly created account from the Batch service, and then deletes it. In questo e in altri frammenti di codice in questo articolo batchManagementClient è un'istanza completamente inizializzata di BatchManagementClient.In this snippet and the others in this article, batchManagementClient is a fully initialized instance of 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);

Nota

Le applicazioni che usano la libreria Batch Management .NET e la relativa classe BatchManagementClient necessitano di accesso come amministratore del servizio o coamministratore alla sottoscrizione a cui appartiene l'account Batch da gestire. Per altre informazioni, vedere la sezione Azure Active Directory e l'esempio di codice AccountManagement.

Recuperare e rigenerare chiavi di accountRetrieve and regenerate account keys

È possibile ottenere le chiavi primarie e secondarie da qualsiasi account Batch all'interno della sottoscrizione usando ListKeysAsync.Obtain primary and secondary account keys from any Batch account within your subscription by using ListKeysAsync. Le chiavi possono essere rigenerate con RegenerateKeyAsync.You can regenerate those keys by using RegenerateKeyAsync.

// Get and print the primary and secondary keys
BatchAccountListKeyResult accountKeys =
    await batchManagementClient.Account.ListKeysAsync(
        "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
            });

Suggerimento

È possibile creare un flusso di lavoro di connessione ottimizzato per le applicazioni di gestione. Ottenere prima una chiave per l'account Batch che si vuole gestire con ListKeysAsync. Usare poi questa chiave durante l'inizializzazione della classe BatchSharedKeyCredentials della libreria Batch .NET usata durante l'inizializzazione di BatchClient.

Verificare le quote di sottoscrizioni di Azure e account BatchCheck Azure subscription and Batch account quotas

Le sottoscrizioni di Azure e i singoli servizi di Azure come Batch hanno tutti quote predefinite che limitano il numero di determinate entità al loro interno.Azure subscriptions and the individual Azure services like Batch all have default quotas that limit the number of certain entities within them. Per informazioni sulle quote predefinite per le sottoscrizioni di Azure, vedere Sottoscrizione di Azure e limiti, quote e vincoli dei servizi.For the default quotas for Azure subscriptions, see Azure subscription and service limits, quotas, and constraints. Per le quote predefinite del servizio Batch, vedere Quote e limiti per il servizio Azure Batch.For the default quotas of the Batch service, see Quotas and limits for the Azure Batch service. Tramite la libreria Batch Management .NET è possibile controllare queste quote nelle applicazioni.By using the Batch Management .NET library, you can check these quotas in your applications. In questo modo è possibile prendere decisioni relative all'allocazione prima di aggiungere account o risorse di calcolo come pool e nodi di calcolo.This enables you to make allocation decisions before you add accounts or compute resources like pools and compute nodes.

Verificare le quote dell'account Batch di una sottoscrizione di AzureCheck an Azure subscription for Batch account quotas

Prima di creare un account Batch in un'area, è possibile verificare se la sottoscrizione di Azure permette di aggiungere un account in quell'area.Before creating a Batch account in a region, you can check your Azure subscription to see whether you are able to add an account in that region.

Nel frammento di codice riportato di seguito viene usato prima di tutto BatchManagementClient.Accounts.ListAsync per ottenere una raccolta di tutti gli account Batch all'interno di una sottoscrizione.In the code snippet below, we first use BatchManagementClient.Account.ListAsync to get a collection of all Batch accounts that are within a subscription. Una volta ottenuta questa raccolta, è possibile determinare il numero di account nell'area di destinazione.Once we've obtained this collection, we determine how many accounts are in the target region. Si userà quindi BatchManagementClient.Subscriptions per ottenere la quota dell'account Batch e determinare se e quanti account è possibile creare in quell'area.Then we use BatchManagementClient.Subscriptions to obtain the Batch account quota and determine how many accounts (if any) can be created in that region.

// Get a collection of all Batch accounts within the subscription
BatchAccountListResponse listResponse =
        await batchManagementClient.Account.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.Subscriptions.GetSubscriptionQuotasAsync(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);

Nel frammento riportato sopra creds è un'istanza di TokenCloudCredentials.In the snippet above, creds is an instance of TokenCloudCredentials. Per un esempio relativo alla creazione di questo oggetto, vedere l'esempio di codice AccountManagement su GitHub.To see an example of creating this object, see the AccountManagement code sample on GitHub.

Verificare le quote di risorse di calcolo in un account BatchCheck a Batch account for compute resource quotas

Prima di aumentare le risorse di calcolo nella soluzione Batch, è possibile verificare che le risorse da allocare non superino le quote dell'account.Before increasing compute resources in your Batch solution, you can check to ensure the resources you want to allocate won't exceed the account's quotas. Nel frammento di codice riportato di seguito si procede alla stampa delle informazioni sulle quote per l'account Batch denominato mybatchaccount.In the code snippet below, we print the quota information for the Batch account named mybatchaccount. Nell'applicazione è possibile usare queste informazioni per stabilire se l'account può gestire le risorse aggiuntive da creare.In your own application, you could use such information to determine whether the account can handle the additional resources to be created.

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

Importante

Molti dei limiti delle quote predefinite per i servizi e le sottoscrizioni di Azure possono essere aumentati inviando una richiesta nel portale di Azure. Per istruzioni su come aumentare le quote dell'account Batch, vedere ad esempio Quote e limiti per il servizio Azure Batch .

Usare Azure AD con la gestione .NET per BatchUse Azure AD with Batch Management .NET

La libreria della gestione .NET per Batch è un client del provider di risorse di Azure e viene usata in combinazione con Azure Resource Manager per gestire le risorse dell'account a livello di programmazione.The Batch Management .NET library is an Azure resource provider client, and is used together with Azure Resource Manager to manage account resources programmatically. Azure AD deve autenticare le richieste effettuate tramite un client del provider di risorse di Azure, inclusa la libreria della gestione .NET per Batch e con Azure Resource Manager.Azure AD is required to authenticate requests made through any Azure resource provider client, including the Batch Management .NET library, and through Azure Resource Manager. Per informazioni sull'uso di Azure AD con la libreria della gestione .NET per Batch, vedere Usare Azure Active Directory per autenticare le soluzioni Batch.For information about using Azure AD with the Batch Management .NET library, see Use Azure Active Directory to authenticate Batch solutions.

Progetto di esempio su GitHubSample project on GitHub

Il progetto di esempio AccountManagment su GitHub permette di vedere Batch Management .NET in azione.To see Batch Management .NET in action, check out the AccountManagment sample project on GitHub. L'applicazione di esempio AccountManagment illustra le operazioni seguenti:The AccountManagment sample application demonstrates the following operations:

  1. Acquisire un token di sicurezza da Azure AD con ADAL.Acquire a security token from Azure AD by using ADAL. Se l'utente non ha già eseguito l'accesso, gli viene richiesto di fornire le credenziali di Azure.If the user is not already signed in, they are prompted for their Azure credentials.
  2. Usando il token di sicurezza ottenuto da Azure AD, creare un oggetto SubscriptionClient per richiedere ad Azure un elenco di sottoscrizioni associate all'account.With the security token obtained from Azure AD, create a SubscriptionClient to query Azure for a list of subscriptions associated with the account. L'utente può selezionare una sottoscrizione dall'elenco se contiene più di una sottoscrizione.The user can select a subscription from the list if it contains more than one subscription.
  3. Ottenere le credenziali associate alla sottoscrizione selezionata.Get credentials associated with the selected subscription.
  4. Creare un oggetto ResourceManagementClient usando le credenziali.Create a ResourceManagementClient object by using the credentials.
  5. Usare l'oggetto ResourceManagementClient per creare un gruppo di risorse.Use a ResourceManagementClient object to create a resource group.
  6. Usare l'oggetto BatchManagementClient per eseguire una serie di operazioni sull'account Batch:Use a BatchManagementClient object to perform several Batch account operations:
    • Creare un account Batch nel nuovo gruppo di risorse.Create a Batch account in the new resource group.
    • Ottenere l'account appena creato dal servizio Batch.Get the newly created account from the Batch service.
    • Stampare le chiavi dell'account per il nuovo account.Print the account keys for the new account.
    • Rigenerare una nuova chiave primaria per l'account.Regenerate a new primary key for the account.
    • Stampare le informazioni sulla quota per l'account.Print the quota information for the account.
    • Stampare le informazioni sulla quota per la sottoscrizione.Print the quota information for the subscription.
    • Stampare tutti gli account all'interno della sottoscrizione.Print all accounts within the subscription.
    • Eliminare l'account appena creato.Delete newly created account.
  7. Eliminare il gruppo di risorse.Delete the resource group.

Prima di eliminare l'account Batch e il gruppo di risorse appena creati, è possibile esaminarli entrambi nel portale di Azure:Before deleting the newly created Batch account and resource group, you can view them in the Azure portal:

Per eseguire correttamente l'applicazione di esempio, è innanzitutto necessario registrarla con il tenant di Azure AD nel portale di Azure e concedere le autorizzazioni all'API di Azure Resource Manager.To run the sample application successfully, you must first register it with your Azure AD tenant in the Azure portal and grant permissions to the Azure Resource Manager API. Seguire la procedura indicata in Autenticare le soluzioni di gestione Batch con Active Directory.Follow the steps provided in Authenticate Batch Management solutions with Active Directory.