Gerenciar um conjunto de dimensionamento de máquinas virtuais com o Azure PowerShell

Observação

Muitas das etapas listadas neste documento se aplicam a Conjuntos de Dimensionamento de Máquinas Virtuais usando o modo Orquestração Uniforme. É recomendável usar a Orquestração Flexível para cargas de trabalho novas. Para saber mais, confira Modos de orquestração para conjuntos de dimensionamento de máquinas virtuais no Azure.

Durante o ciclo de vida de um conjunto de dimensionamento de máquinas virtuais, você poderá precisar executar uma ou mais tarefas de gerenciamento. Além disso, talvez você deseje criar scripts que automatizam várias tarefas do ciclo de vida. Este artigo fornece detalhes sobre alguns dos cmdlets comuns do Azure PowerShell que permitem executar essas tarefas.

Caso precise criar um conjunto de dimensionamento de máquinas virtuais, crie um conjunto de dimensionamento com o Azure PowerShell.

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Exibir informações sobre um conjunto de dimensionamento

Para exibir as informações gerais sobre um conjunto de dimensionamento, use Get-AzVmss. O exemplo a seguir obtém informações sobre o conjunto de dimensionamento chamado myScaleSet no grupo de recursos myResourceGroup. Insira seus próprios nomes da seguinte maneira:

Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Exibição de VMs em um conjunto de escala

Para exibir uma lista de instância de VM em um conjunto de dimensionamento, use Get-AzVmssVM. O exemplo a seguir lista todas as instâncias de VM no conjunto de dimensionamento denominado myScaleSet e no grupo de recursos myResourceGroup. Forneça os seus próprios valores para esses nomes:

Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Para exibir informações adicionais sobre uma instância específica de VM, adicione o parâmetro -InstanceId a Get-AzVmssVM e especifique uma instância para exibição. O exemplo a seguir exibe informações sobre a instância de VM 0 no conjunto de dimensionamento chamado myScaleSet no grupo de recursos myResourceGroup. Insira seus próprios nomes da seguinte maneira:

Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Você também pode obter informações detalhadas de instanceView para todas as instâncias em uma chamada à API, o que pode ajudar a evitar que a API aplique limitações para instalações grandes.

Get-AzVmssVM -InstanceView -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
GET "https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSSName>/virtualMachines?api-version=2019-03-01&%24expand=instanceView"

Alterar a capacidade de um conjunto de dimensionamento

Os comandos anteriores mostravam informações sobre o conjunto de escala e as instâncias de VM. Para aumentar ou diminuir o número de instâncias no conjunto de dimensionamento, você pode alterar a capacidade. O conjunto de dimensionamento cria ou remove automaticamente o número necessário de VMs e configura as VMs para receber o tráfego do aplicativo.

Primeiro, crie um objeto de conjunto de dimensionamento com Get-AzVmss, em seguida, especifique um novo valor para sku.capacity. Para aplicar a alteração de capacidade, use Update-AzVmss. O exemplo a seguir atualiza myScaleSet no grupo de recursos myResourceGroup para uma capacidade de 5 instâncias. Use seus próprios valores, da seguinte maneira:

# Get current scale set
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

# Set and update the capacity of your scale set
$vmss.sku.capacity = 5
Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss

Demora alguns minutos para atualizar a capacidade do seu conjunto de dimensionamento. Se você diminuir a capacidade de um conjunto de dimensionamento, as máquinas virtuais com as IDs de instância mais alta são removidas primeiro.

Parar e iniciar VMs em um conjunto de dimensionamento

Para parar uma ou mais VMs em um conjunto de dimensionamento, use Stop-AzVmss. O parâmetro -InstanceId permite que você especifique uma ou mais VMs a serem paradas. Se você não especificar uma ID de instância, todas as VMs no conjunto de dimensionamento são paradas. Para parar várias VMs, separe cada ID de instância com uma vírgula.

O exemplo a seguir para a instância 0 no conjunto de dimensionamento chamado myScaleSet e o grupo de recursos myResourceGroup. Use seus próprios valores, da seguinte maneira:

Stop-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Por padrão, as VMs paradas são desalocadas e não incorrem em encargos de computação. Se desejar que a VM permaneça em um estado de provisionamento quando interrompido, adicione o parâmetro -StayProvisioned ao comando anterior. VMs paradas que permanecem provisionadas incorrem em encargos de computação regulares.

Iniciar VMs em um conjunto de dimensionamento

Para iniciar uma ou mais VMs em um conjunto de dimensionamento, use Start-AzVmss. O parâmetro -InstanceId permite que você especifique uma ou mais VMs a serem iniciadas. Se você não especificar uma ID de instância, todas as VMs no conjunto de dimensionamento são iniciadas. Para iniciar várias VMs, separe cada ID de instância com uma vírgula.

O exemplo a seguir inicia a instância 0 no conjunto de dimensionamento chamado myScaleSet e o grupo de recursos myResourceGroup. Use seus próprios valores, da seguinte maneira:

Start-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Reiniciar VMs em um conjunto de dimensionamento

Para reiniciar uma ou mais VMs em um conjunto de dimensionamento, use Restart-AzVmss. O parâmetro -InstanceId permite que você especifique uma ou mais VMs para reiniciar. Se você não especificar uma ID de instância, todas as VMs no conjunto de dimensionamento são reiniciadas. Para reiniciar várias VMs, separe cada ID de instância com uma vírgula.

O exemplo a seguir reinicia a instância 0 no conjunto de dimensionamento chamado myScaleSet e o grupo de recursos myResourceGroup. Use seus próprios valores, da seguinte maneira:

Restart-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Remover VMs de um conjunto de dimensionamento

Para remover uma ou mais VMs em um conjunto de dimensionamento, use Remove-AzVmss. O parâmetro -InstanceId permite que você especifique uma ou mais VMs para remover. Se você não especificar uma ID de instância, todas as VMs no conjunto de dimensionamento são removidas. Para remover várias VMs, separe cada ID de instância com uma vírgula.

O exemplo a seguir remove a instância 0 no conjunto de dimensionamento chamado myScaleSet e o grupo de recursos myResourceGroup. Use seus próprios valores, da seguinte maneira:

Remove-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Próximas etapas

Outras tarefas comuns dos conjuntos de dimensionamento incluem como implantar um aplicativo e atualizar instâncias de VM. Você também pode usar o Azure PowerShell para configurar as regras de dimensionamento automático.