Here is a another cool new feature of Azure Virtual Desktops, and also this feature is recently released to all the tenants as it went on general availability. This feature is called "Start VM on Connect"
Start VM on Connect will help you optimize the costs of your deployment by offering a configuration setting in the service to start stopped or deallocated VMs when needed
This new feature that will turn on a shutdown or deallocated VM in a Azure Virtual Desktop host pool when a user tries to connect to it. You could always set policies to shut down idle VMs and save cost - but with the Start VM on connect capability you can now also ensure that those VMs are available to your users if needed.
What do we need to have this enabled, of course there are few limitations. when this feature was originally released this was only available for personal host pools but luckily now its available for both pooled and personal. so then what are the limitations
Requirements and limitations
You can enable the start VM on Connect feature for personal or pooled host pools using PowerShell and the Azure portal.
The following Remote Desktop clients support the Start VM on Connect feature:
The web client
The Windows client (version 1.2.2061 or later)
The Android client (version 10.0.10 or later)
The macOS client (version 10.6.4 or later)
The iOS client (version 10.2.5 or later)
The thin clients listed in Thin client support
Before you can configure the Start VM on Connect feature, you'll need to assign your VM a custom RBAC (role-based access control) role. This role will let Azure Virtual Desktop manage the VMs in your subscription. Following are the custom permissions. And these need to assign to the AVD
Once the permission is set, its just a matter of enabling this feature in your AVD host pool as below. You can use either GUI o r PowerShell to enable this.
or below PowerShell will do the trick
Update-AzWvdHostPool -ResourceGroupName -Name -StartVMOnConnect:$true
And one thing to remember these are not like scale sets. VM needs to be provisioned first and added to the host pool.
Hope this helps you. and also save some cost for you all. :)