Gerir um Conjunto de Dimensionamento de Máquinas Virtuais com Azure PowerShell

Nota

Muitos dos passos listados neste documento aplicam-se a Conjuntos de Dimensionamento de Máquinas Virtuais através do modo Orquestração Uniforme. Recomendamos a utilização da Orquestração Flexível para novas cargas de trabalho. Para obter mais informações, veja Modos de orchesration para Conjuntos de Dimensionamento de Máquinas Virtuais no Azure.

Ao longo do ciclo de vida de um Conjunto de Dimensionamento de Máquinas Virtuais, poderá ter de executar uma ou mais tarefas de gestão. Além disso, pode querer criar scripts que automatizam várias tarefas do ciclo de vida. Este artigo detalha alguns dos cmdlets de Azure PowerShell comuns que lhe permitem realizar estas tarefas.

Se precisar de criar um Conjunto de Dimensionamento de Máquinas Virtuais, pode criar um conjunto de dimensionamento com Azure PowerShell.

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Ver informações sobre um conjunto de dimensionamento

Para ver as informações gerais sobre um conjunto de dimensionamento, utilize Get-AzVmss. O exemplo seguinte obtém informações sobre o conjunto de dimensionamento denominado myScaleSet no grupo de recursos myResourceGroup . Introduza os seus próprios nomes da seguinte forma:

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

Ver VMs num conjunto de dimensionamento

Para ver uma lista de instâncias de VM num conjunto de dimensionamento, utilize Get-AzVmssVM. O exemplo seguinte 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 estes nomes:

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

Para ver informações adicionais sobre uma instância de VM específica, adicione o -InstanceId parâmetro a Get-AzVmssVM e especifique uma instância a ver. O exemplo seguinte visualiza informações sobre a instância da VM 0 no conjunto de dimensionamento denominado myScaleSet e o grupo de recursos myResourceGroup . Introduza os seus próprios nomes da seguinte forma:

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

Também pode obter informações detalhadas da instanceView para todas as instâncias numa chamada à API, o que pode ajudar a evitar a limitação da API para grandes instalações.

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 mostraram informações sobre o conjunto de dimensionamento e as instâncias da VM. Para aumentar ou diminuir o número de instâncias no conjunto de dimensionamento, pode alterar a capacidade. O conjunto de dimensionamento cria ou remove automaticamente o número necessário de VMs e, em seguida, configura as VMs para receber o tráfego da aplicação.

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

# 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

São necessários alguns minutos para atualizar a capacidade do seu conjunto de dimensionamento. Se diminuir a capacidade de um conjunto de dimensionamento, as VMs com os IDs de instância mais elevados serão removidas primeiro.

Stop and start VMs in a scale set (Parar e iniciar VMs num conjunto de dimensionamento)

Para parar uma ou mais VMs num conjunto de dimensionamento, utilize Stop-AzVmss. O parâmetro -InstanceId permite-lhe especificar uma ou mais VMs que deverão ser paradas. Se não especificar um 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 seguinte para a instância 0 no conjunto de dimensionamento com o nome myScaleSet e o grupo de recursos myResourceGroup . Forneça os seus próprios valores da seguinte forma:

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

Por predefinição, as VMs paradas são desalocadas e não implicam custos de computação. Se quiser que a VM permaneça no estado aprovisionado quando for parada, adicione o parâmetro -StayProvisioned ao comando anterior. As VMs paradas que continuem aprovisionadas incorrem em custos de computação regulares.

Iniciar VMs num conjunto de dimensionamento

Para iniciar uma ou mais VMs num conjunto de dimensionamento, utilize Start-AzVmss. O parâmetro -InstanceId permite-lhe especificar uma ou mais VMs que deverão ser iniciadas. Se não especificar um 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 seguinte inicia a instância 0 no conjunto de dimensionamento com o nome myScaleSet e o grupo de recursos myResourceGroup . Forneça os seus próprios valores da seguinte forma:

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

Restart VMs in a scale set (Reiniciar VMs num conjunto de dimensionamento)

Para reiniciar uma ou mais VMs num conjunto de dimensionamento, utilize Restart-AzVmss. O parâmetro -InstanceId permite-lhe especificar uma ou mais VMs que deverão ser reinciadas. Se não especificar um 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 seguinte reinicia a instância 0 no conjunto de dimensionamento com o nome myScaleSet e o grupo de recursos myResourceGroup . Forneça os seus próprios valores da seguinte forma:

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

Remover VMs de um conjunto de dimensionamento

Para remover uma ou mais VMs num conjunto de dimensionamento, utilize Remove-AzVmss. O -InstanceId parâmetro permite-lhe especificar uma ou mais VMs a remover. Se não especificar um ID de instância, todas as VMs no conjunto de dimensionamento serão removidas. Para remover várias VMs, separe cada ID de instância com uma vírgula.

O exemplo seguinte remove a instância 0 no conjunto de dimensionamento com o nome myScaleSet e o grupo de recursos myResourceGroup . Forneça os seus próprios valores da seguinte forma:

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

Passos seguintes

Outras tarefas comuns para conjuntos de dimensionamento incluem como implementar uma aplicação e atualizar instâncias de VM. Também pode utilizar Azure PowerShell para configurar regras de dimensionamento automático.