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.
Com os cmdlets do PowerShell do Azure Batch, você pode executar e scriptar muitas tarefas comuns do Batch. Esta é uma breve introdução aos cmdlets que você pode usar para gerenciar suas contas do Batch e trabalhar com seus recursos do Batch, como pools, trabalhos e tarefas.
Para obter uma lista completa de cmdlets de Lote e a sintaxe detalhada dos cmdlets, confira a Referência de cmdlet do Lote do Azure.
Recomendamos que você atualize seus módulos do Azure PowerShell com frequência para aproveitar as atualizações e melhorias de serviço.
Pré-requisitos
Instale e configure o módulo do Azure PowerShell. Para instalar um módulo específico do Lote do Azure, como um módulo de pré-lançamento, consulte a Galeria do PowerShell.
Execute o cmdlet Connect-AzAccount para se conectar à sua assinatura (os cmdlets do Lote do Azure são fornecidos no módulo do Azure Resource Manager):
Connect-AzAccountRegistrar com o namespace do provedor de Lote. Você só precisa executar essa operação uma vez por assinatura.
Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
Gerenciar contas e chaves do Lote
Criar uma conta do Batch
New-AzBatchAccount cria uma conta de Batch em um grupo de recursos especificado. Se você ainda não tiver um grupo de recursos, crie um executando o cmdlet New-AzResourceGroup . Especifique uma das regiões do Azure no parâmetro Location , como "EUA Central". Por exemplo:
New-AzResourceGroup –Name MyBatchResourceGroup –Location "Central US"
Em seguida, crie uma conta Batch no grupo de recursos. Especifique um nome para a conta em <account_name> e o local e o nome do grupo de recursos. A criação da conta Batch pode levar algum tempo para ser concluída. Por exemplo:
New-AzBatchAccount –AccountName <account_name> –Location "Central US" –ResourceGroupName <res_group_name>
Observação
O nome da conta do Lote deve ser exclusivo para a região do Azure para o grupo de recursos, conter entre 3 e 24 caracteres e usar apenas letras minúsculas e números.
Obter chaves de acesso da conta
Get-AzBatchAccountKeys mostra as chaves de acesso associadas a uma conta do Azure Batch. Por exemplo, execute o seguinte para obter as chaves primárias e secundárias da conta que você criou.
$Account = Get-AzBatchAccountKeys –AccountName <account_name>
$Account.PrimaryAccountKey
$Account.SecondaryAccountKey
Gerar uma nova chave de acesso
New-AzBatchAccountKey gera uma nova chave de conta primária ou secundária para uma conta do Azure Batch. Por exemplo, para gerar uma nova chave primária para sua conta de Batch, digite:
New-AzBatchAccountKey -AccountName <account_name> -KeyType Primary
Observação
Para gerar uma nova chave secundária, especifique "Secundário" para o parâmetro KeyType . Você precisa regenerar as chaves primária e secundária separadamente.
Excluir uma conta do Lote
Remove-AzBatchAccount exclui uma Batch account. Por exemplo:
Remove-AzBatchAccount -AccountName <account_name>
Quando solicitado, confirme se deseja remover a conta. A remoção da conta pode levar algum tempo para ser concluída.
Criar um objeto BatchAccountContext
Você pode autenticar para gerenciar recursos do Batch usando tanto a autenticação por chave compartilhada quanto a autenticação do Microsoft Entra. Para autenticar usando os cmdlets do PowerShell do Lote, primeiro crie um objeto BatchAccountContext para armazenar suas credenciais ou identidade. Você passa o objeto BatchAccountContext para cmdlets que usam o parâmetro BatchContext .
Autenticação de chave compartilhada
$context = Get-AzBatchAccountKeys -AccountName <account_name>
Observação
Por padrão, a chave primária da conta é usada para autenticação, mas você pode selecionar explicitamente a chave a ser usada alterando a propriedade KeyInUse do objeto BatchAccountContext: $context.KeyInUse = "Secondary".
autenticação do Microsoft Entra
$context = Get-AzBatchAccount -AccountName <account_name>
Criar e modificar recursos de Processamento em Lote
Use cmdlets como New-AzBatchPool, New-AzBatchJob e New-AzBatchTask para criar recursos em uma conta do Lote. Há cmdlets correspondentes Get- e Set- para atualizar as propriedades de recursos existentes e cmdlets Remove- para remover recursos em uma conta do Lote.
Ao usar muitos desses cmdlets, além de passar um objeto BatchContext, você precisa criar ou passar objetos que contenham configurações de recurso detalhadas, conforme mostrado no exemplo a seguir. Consulte a ajuda detalhada para cada cmdlet para obter exemplos adicionais.
Criar um pool do Lote
Ao criar ou atualizar um pool do Batch, especifique uma configuração. Os pools geralmente devem ser configurados com a Configuração de Máquina Virtual, o que permite especificar uma das imagens de VM do Linux ou windows com suporte listadas no Marketplace de Máquinas Virtuais do Azure ou fornecer uma imagem personalizada que você preparou. Os pools de Configuração de Serviços de Nuvem fornecem apenas nós de computação do Windows e não dão suporte a todos os recursos do Lote.
Ao executar New-AzBatchPool, passe as configurações do sistema operacional em um objeto PSVirtualMachineConfiguration ou PSCloudServiceConfiguration. Por exemplo, o trecho a seguir cria um pool do Lote com nós de computação de tamanho Standard_A1 na configuração de máquina virtual, com imagem do Ubuntu Server 20.04-LTS. Aqui, o parâmetro VirtualMachineConfiguration especifica a variável $configuration como o objeto PSVirtualMachineConfiguration. O parâmetro BatchContext especifica uma variável definida anteriormente $context como o objeto BatchAccountContext.
$imageRef = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSImageReference" -ArgumentList @("UbuntuServer","Canonical","20.04-LTS")
$configuration = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration" -ArgumentList @($imageRef, "batch.node.ubuntu 20.04")
New-AzBatchPool -Id "mypspool" -VirtualMachineSize "Standard_a1" -VirtualMachineConfiguration $configuration -AutoScaleFormula '$TargetDedicated=4;' -BatchContext $context
O número de destino de nós de computação no novo pool é calculado por uma fórmula de dimensionamento automático. Nesse caso, a fórmula é simplesmente $TargetDedicated=4, indicando que o número de nós de computação no pool é 4 no máximo.
Consultar pools, trabalhos, tarefas e outros detalhes
Use cmdlets como Get-AzBatchPool, Get-AzBatchJob e Get-AzBatchTask para consultar entidades criadas em uma conta do Lote.
Consultar dados
Por exemplo, use Get-AzBatchPools para encontrar seus pools. Por padrão, essa consulta retorna todos os pools da conta, assumindo que você já armazenou o objeto BatchAccountContext em $context:
Get-AzBatchPool -BatchContext $context
Usar um filtro OData
Você pode fornecer um filtro OData usando o parâmetro Filter para localizar apenas os objetos nos quais você está interessado. Por exemplo, você pode encontrar todos os pools com IDs começando com "myPool":
$filter = "startswith(id,'myPool')"
Get-AzBatchPool -Filter $filter -BatchContext $context
Esse método não é tão flexível quanto usar "Where-Object" em um pipeline local. No entanto, a consulta é enviada diretamente ao serviço do Lote para que toda a filtragem ocorra no lado do servidor, salvando a largura de banda da Internet.
Usar o parâmetro Id
Uma alternativa a um filtro OData é usar o parâmetro Id . Para consultar um pool específico com a ID "myPool":
Get-AzBatchPool -Id "myPool" -BatchContext $context
O parâmetro Id dá suporte apenas à pesquisa de ID completa; não a curingas ou filtros de estilo OData.
Usar o parâmetro MaxCount
Por padrão, cada cmdlet retorna um máximo de 1000 objetos. Se você atingir esse limite, refinar o filtro para trazer menos objetos ou definir explicitamente um máximo usando o parâmetro MaxCount . Por exemplo:
Get-AzBatchTask -MaxCount 2500 -BatchContext $context
Para remover o limite superior, defina MaxCount como 0 ou menos.
Usar o pipeline do PowerShell
Os cmdlets do Lote usam o pipeline do PowerShell para enviar dados entre cmdlets. Isso tem o mesmo efeito que especificar um parâmetro, mas facilita o trabalho com várias entidades.
Por exemplo, localize e exiba todas as tarefas em sua conta:
Get-AzBatchJob -BatchContext $context | Get-AzBatchTask -BatchContext $context
Reiniciar (reboot) todos os nós de computação em um pool:
Get-AzBatchComputeNode -PoolId "myPool" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Gerenciamento de pacotes de aplicativos
Os pacotes de aplicativos fornecem uma maneira simplificada de implantar aplicativos nos nós de computação em seus pools. Com os cmdlets do PowerShell do Lote, você pode carregar e gerenciar pacotes de aplicativos na sua conta do Lote e implantar versões de pacotes em nós de computação.
Importante
Você deve vincular uma conta de Armazenamento do Microsoft Azure à sua conta do Lote para usar pacotes de aplicativos.
Criar um aplicativo:
New-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Adicione um pacote de aplicativos:
New-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0" -Format zip -FilePath package001.zip
Defina a versão padrão para o aplicativo:
Set-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -DefaultVersion "1.0"
Listar os pacotes de um aplicativo
$application = Get-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
$application.ApplicationPackages
Excluir um pacote de aplicativos
Remove-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0"
Excluir um aplicativo
Remove-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Observação
Você deve excluir todas as versões do pacote de aplicativos de um aplicativo antes de excluir o aplicativo. Você receberá um erro de 'Conflito' se tentar excluir um aplicativo que atualmente tenha pacotes de aplicativos.
Implantar um pacote de aplicativos
Você pode especificar um ou mais pacotes de aplicativos para implantação ao criar um pool. Quando você especifica um pacote no momento da criação do pool, ele é implantado em cada nó à medida que o nó entra no pool. Os pacotes também são implantados quando um nó é reiniciado ou tem a imagem refeita.
Especifique a opção -ApplicationPackageReference ao criar um pool para implantar um pacote de aplicativos nos nós do pool à medida que eles ingressam no pool. Primeiro, crie um objeto PSApplicationPackageReference e configure-o com a ID do aplicativo e a versão do pacote que você deseja implantar nos nós de computação do pool:
$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
$appPackageReference.ApplicationId = "MyBatchApplication"
$appPackageReference.Version = "1.0"
Agora, crie o pool e especifique o objeto de referência do pacote como o argumento para a opção ApplicationPackageReferences :
New-AzBatchPool -Id "PoolWithAppPackage" -VirtualMachineSize "Small" -VirtualMachineConfiguration $configuration -BatchContext $context -ApplicationPackageReferences $appPackageReference
Você pode encontrar mais informações sobre pacotes de aplicativos em Implantar pacotes de aplicativos em nós de computação com o Batch.
Atualizar os pacotes de aplicativos de um pool
Para atualizar os aplicativos atribuídos a um pool existente, primeiro crie um objeto PSApplicationPackageReference com as propriedades desejadas (ID do aplicativo e versão do pacote):
$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
$appPackageReference.ApplicationId = "MyBatchApplication"
$appPackageReference.Version = "2.0"
Em seguida, obtenha o pool do Lote, limpe todos os pacotes existentes, adicione a nova referência de pacote e atualize o serviço do Lote com as novas configurações de pool:
$pool = Get-AzBatchPool -BatchContext $context -Id "PoolWithAppPackage"
$pool.ApplicationPackageReferences.Clear()
$pool.ApplicationPackageReferences.Add($appPackageReference)
Set-AzBatchPool -BatchContext $context -Pool $pool
Agora, você atualizou as propriedades do pool no serviço do Lote. No entanto, para implantar o novo pacote de aplicativos em nós de computação no pool, você deve reiniciar ou refazer a imagem desses nós. Você pode reiniciar todos os nós em um pool com este comando:
Get-AzBatchComputeNode -PoolId "PoolWithAppPackage" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Dica
Você pode implantar vários pacotes de aplicativos nos nós de computação em um pool. Se você quiser adicionar um pacote de aplicativos em vez de substituir os pacotes implantados no momento, omita a $pool.ApplicationPackageReferences.Clear() linha acima.
Próximas etapas
- Confira a referência de cmdlets do Lote do Azure para obter detalhes sobre a sintaxe de cmdlets e exemplos.
- Saiba como implantar aplicativos em nós de computação com pacotes de aplicativos do Lote.