Today at PowerShell in Action I spoke twice about not going TOO far in your PowerShell when managing Azure resources.
The point of the talks wasn’t really that using PowerShell is bad/wrong, more that it might not be the best tool for the job in certain scenarios. In particular, an ARM template is a powerful modeling tool in support of a “no pets” policy, which is interesting to consider as your cloud environments grow more complex while also wanting to make environments easier to manage. Another benefit stems from keeping the ARM template itself as an “infrastructure as code” artifact that can be used to document – and, more to the point, as executable documentation – for stamping out environments predictably. And still another feature: the ARM runtime handles a lot of the complex parts that could come by trying to script one resource at a time via imperative PowerShell scripts – for example, error recovery and retries.
The deck is on the event shared github repo. There are lots of otherPowerShelly resources on that repo that you may find worth checking out.
(Added 03-June) For those of you who attended my Advanced session, when I attempted to clean up at the end using Remove-AzureRmResourceGroupDeployment, my PowerShell command had an error in it. Here is the correct version. In the first screen shot I show how to ascertain the correct value for the first the parameter using Get-AzureRmResourceGroupDeployment.
-Name Microsoft.Template -ResourceGroupName k1
Once that PowerShell command executed, all 8 resources associated with that deployment were removed (deleted, and billing stopped).