I ran into some issues when actually attempting to apply my first Terraform template, specifically errors related to the location I had chosen:
* azurerm_virtual_machine.test: compute.VirtualMachinesClient#CreateOrUpdate: Failure sending request: StatusCode=409 -- Original Error: failed request: autorest/azure: Service returned an error. Status=<nil> Code="SkuNotAvailable" Message="The requested size for resource '/subscriptions/f745d13d/resourceGroups/HelloWorld/providers/Microsoft.Compute/virtualMachines/helloworld' is currently not available in location 'WestUS' zones '' for subscription 'f745d13d'. Please try another size or deploy to a different location or zones. See https://aka.ms/azureskunotavailable for details." |
This didn’t make much sense to me, because I was using a very normal VM size (like Standard_A2 or something) and it was definitely available in WestUS.
The key to solving was when I use the Azure Shell (powershell) to run this:
Get-AzureRmComputeResourceSku | where {$_.Locations.Contains("WestUS")} |
The output of this command:
Turns out for my Subscription (Visual Studio Enterprise – MPN), WestUS is restricted to very few VM sizes (note the “NotAvailableForSubscription” items). When I target WestUS2 or EastUS, then there’s quite a bit more choice.