Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
É possível diminuir a sobrecarga de manutenção em seus aplicativos do Lote do Azure usando a biblioteca do Batch Management .NET para automatizar a criação, a exclusão, o gerenciamento de chaves e a descoberta de cotas da conta do Lote.
- Criar e excluir contas do Batch em qualquer região. Se como um ISV (fornecedor independente de software), por exemplo, você fornece um serviço para os clientes no qual cada um é atribuído a uma conta do Lote separada para fins de cobrança, pode adicionar recursos de criação e exclusão de conta no portal do cliente.
- Recupere e regenere chaves de conta programaticamente para qualquer uma das suas contas do Batch. Isso pode ajudá-lo a atender às políticas de segurança que impõem substituição periódica ou expiração de chaves de conta. Quando você tiver várias contas do Lote em várias regiões do Azure, a automação desse processo de substituição aumentará a eficiência da solução.
- Verifique as cotas da conta e elimine a adivinhação por tentativa e erro ao determinar quais contas do Batch têm quais limites. Ao verificar suas cotas de conta antes de iniciar trabalhos, de criar pools ou de adicionar nós de computação, você poderá ajustar proativamente quando ou onde esses recursos de computação serão criados. Você pode determinar quais contas exigem aumento de cota antes da alocação de recursos adicionais a elas.
- Combine os recursos de outros serviços do Azure para ter uma experiência de gerenciamento completa, usando o .NET de Gerenciamento do Lote, o Microsoft Entra ID e o Azure Resource Manager juntos, no mesmo aplicativo. Ao usar esses recursos e suas APIs, você pode oferecer uma experiência de autenticação sem atrito, a capacidade de criar e excluir grupos de recursos, bem como os recursos descritos acima para uma solução de gerenciamento de ponta a ponta.
Observação
Embora este artigo se concentre no gerenciamento programático das contas, chaves e cotas do Batch, também é possível realizar muitas dessas atividades usando o portal do Azure.
Criar e excluir contas do Batch
Um dos principais recursos da API de Gerenciamento do Lote é criar e excluir contas do Lote em uma região do Azure. Para fazer isso, use BatchAccountCollection.CreateOrUpdate e Deleteou seus equivalentes assíncronos.
O trecho de código a seguir cria uma conta, obtém a conta recém-criada do serviço Batch e depois a exclui.
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);
Observação
Os aplicativos que usam a biblioteca do .NET de Gerenciamento do Lote exigem o acesso de administrador de serviços ou de coadministrador à assinatura que possui a conta do Lote a ser gerenciada. Para saber mais, confira a seção Microsoft Entra ID e o exemplo de código AccountManagement.
Recuperar e regenerar chaves de conta
Obtenha as chaves da conta principal e secundária de qualquer conta do Lote em sua assinatura usando GetKeys. Você pode regenerar essas chaves usando 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);
// 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);
Dica
Você pode criar um fluxo de trabalho simplificado de conexão para os aplicativos de gerenciamento. Primeiro, obtenha a chave da conta do Batch que você deseja gerenciar com GetKeys. Em seguida, use essa chave para inicializar a classe BatchSharedKeyCredentials da biblioteca .NET do Batch, usada na inicialização de BatchClient.
Verificar a assinatura do Azure e as cotas da conta do Azure Batch
As assinaturas do Azure e os serviços Azure individuais, como o Lote, têm cotas padrão limitando o número de determinadas entidades neles. Para obter as cotas padrão das assinaturas do Azure, veja Assinatura do Azure e limites de serviço, cotas e restrições. Para obter as cotas padrão do serviço Lote do Azure, consulte Cotas e limites do serviço Lote do Azure. Usando a biblioteca .NET de Gerenciamento de Lotes, você pode verificar essas cotas em seus aplicativos. Isso permite que você tome decisões de alocação antes de adicionar contas ou recursos de computação, como pools e nós de computação.
Verificar uma assinatura do Azure para cotas de conta do Lote
Antes de criar uma conta do Lote em uma região, verifique a sua assinatura do Azure para ver se é possível adicionar uma conta nessa região.
No trecho de código abaixo, primeiro usamos GetBatchAccounts para obter uma coleção de todas as contas do Batch que pertencem a uma assinatura. Depois que obtivemos essa coleção, podemos determinar quantas contas estão na região de destino. Em seguida, usamos GetBatchQuotas para obter a cota da conta do Batch e determinar quantas contas (se houver) podem ser criadas nessa região.
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);
No snippet acima, creds é uma instância de TokenCredentials. Para ver um exemplo de como criar esse objeto, confira o exemplo de código AccountManagement no GitHub.
Verifique as cotas de recursos de computação de uma conta do Batch
Antes de aumentar os recursos computacionais em sua solução do Batch, você pode verificar se os recursos que deseja alocar não excederão as cotas da conta. No trecho de código abaixo, exibimos as informações da cota da conta do Batch chamada mybatchaccount. Em seu próprio aplicativo, você pode usar essas informações para determinar se a conta pode lidar com os recursos adicionais a serem criados.
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);
Importante
Embora existam cotas padrão para assinaturas e serviços do Azure, muitos desses limites podem ser elevados solicitando um aumento de cota no portal do Azure.
Usando o Microsoft Entra ID com o Batch Management .NET
A biblioteca .NET de Gerenciamento de Lotes é um cliente do provedor de recursos do Azure e é usada em conjunto com o Azure Resource Manager para gerenciar programaticamente os recursos da conta. O Microsoft Entra ID é necessário para autenticar solicitações feitas por meio de qualquer cliente de provedor de recursos do Azure, incluindo a biblioteca .NET do Gerenciamento de Lote e por meio do Azure Resource Manager. Para obter informações sobre como usar o Microsoft Entra ID com a biblioteca .NET de Gerenciamento do Lote, confira Usar o Microsoft Entra ID para autenticar soluções do Lote.
Projeto de exemplo no GitHub
Para ver o Batch Management .NET em ação, confira o projeto de exemplo AccountManagement no GitHub. O aplicativo de exemplo AccountManagment demonstra as operações a seguir:
- Adquira um token de segurança do Microsoft Entra ID usando as instruções descritas em Adquirir e armazenar tokens em cache usando a MSAL (Biblioteca de Autenticação da Microsoft). Se o usuário ainda não estiver conectado, será solicitado que ele forneça suas credenciais do Azure.
- Com o token de segurança obtido do Microsoft Entra ID, crie um SubscriptionClient para consultar o Azure e obter uma lista de assinaturas associadas à conta. O usuário poderá selecionar uma assinatura na lista se ela contiver mais de uma assinatura.
- Obtenha as credenciais associadas à assinatura selecionada.
- Crie um objeto ResourceManagementClient usando as credenciais.
- Use um objeto ResourceManagementClient para criar um grupo de recursos.
- Use o objeto BatchManagementClient para executar várias operações de conta do Batch:
- Crie uma conta do Batch no novo grupo de recursos.
- Obtenha a conta recém-criada no serviço do Lote.
- Imprima as chaves de conta da nova conta.
- Regenere uma nova chave primária para a conta.
- Imprima as informações de cota para a conta.
- Imprima as informações de cota para a assinatura.
- Imprima todas as contas da assinatura.
- Exclua a conta recém-criada.
- Exclua o grupo de recursos.
Para executar o aplicativo de exemplo com êxito, primeiro, você precisa registrá-lo no seu locatário do Microsoft Entra no portal do Azure e conceder permissões à API do Azure Resource Manager. Siga as etapas fornecidas em Autenticar soluções de gerenciamento do lote com o Active Directory.
Próximas etapas
- Saiba mais sobre o fluxo de trabalho do serviço Batch e seus principais recursos, como pools, nós, trabalhos e tarefas.
- Aprenda os conceitos básicos do desenvolvimento de um aplicativo habilitado para Batch usando a biblioteca de cliente .NET do Batch ou Python. Estes guias de início rápido orientam você em um aplicativo de exemplo que usa o serviço Batch para executar uma carga de trabalho em vários nós de computação, usando o Armazenamento do Azure para o preparo e a recuperação dos arquivos da carga de trabalho.