Partager via


Utiliser des commandes pour démarrer et arrêter les machines virtuelles DevTest Labs

Cet article explique comment utiliser PowerShell ou des commandes Azure CLI pour générer un script ou automatiser le démarrage ou l’arrêt des machines virtuelles Azure DevTest Labs. Par exemple, vous pouvez utiliser des commandes de démarrage ou d’arrêt pour :

  • Testez une application à trois niveaux où les niveaux doivent commencer dans une séquence.
  • Désactivez vos machines virtuelles pour économiser des coûts lorsqu’elles répondent à des critères personnalisés.
  • Démarrez et arrêtez une machine virtuelle lorsqu’un flux de travail d’intégration continue et de livraison continue (CI/CD) commence et se termine.

Note

Vous pouvez également démarrer, arrêter ou redémarrer des machines virtuelles DevTest Labs à l’aide du portail Azure. Les administrateurs de laboratoire peuvent utiliser le portail pour configurer les planifications et stratégies d’arrêt etde démarrage automatique pour les machines virtuelles lab.

Prerequisites

Démarrer ou arrêter une machine virtuelle

Le script PowerShell suivant démarre ou arrête une machine virtuelle dans un laboratoire à l’aide de l’applet de commande Invoke-AzResourceAction PowerShell. Le ResourceId paramètre est l’ID complet de la machine virtuelle lab que vous souhaitez démarrer ou arrêter. Le Action paramètre détermine s’il faut démarrer ou arrêter la machine virtuelle, selon l’action dont vous avez besoin.

  1. Si vous utilisez Cloud Shell, vérifiez que l’environnement PowerShell est sélectionné.

  2. Utilisez l’applet de commande PowerShell Connect-AzAccount pour vous connecter à votre compte Azure. Si vous avez plusieurs abonnements Azure, décommentez Set-AzContext et indiquez l'identifiant <SubscriptionId> que vous souhaitez utiliser.

    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # Set-AzContext -SubscriptionId "<Subscription ID>"
    
  3. Définissez des variables en fournissant vos propres valeurs pour <lab name>, <VM name> et choisissez si vous voulez Start ou Stop la VM.

    $devTestLabName = "<lab name>"
    $vMToStart = "<VM name>"
    $vmAction = "<Start or Stop>"
    
  4. Démarrez ou arrêtez la machine virtuelle, en fonction de la valeur que vous avez passée à $vmAction.

    # Get the lab information
    $devTestLab = Get-AzResource -ResourceType 'Microsoft.DevTestLab/labs' -ResourceName $devTestLabName
    
    # Start or stop the VM and return a succeeded or failed status
    $returnStatus = Invoke-AzResourceAction `
                        -ResourceId "$($devTestLab.ResourceId)/virtualmachines/$vMToStart" `
                        -Action $vmAction `
                        -Force
    
    if ($returnStatus.Status -eq 'Succeeded') {
        Write-Output "##[section] Successfully updated DTL machine: $vMToStart, Action: $vmAction"
    }
    else {
        Write-Error "##[error] Failed to update DTL machine: $vMToStart, Action: $vmAction"
    }