functions/CreateResourceGroup.ps1
function New-SpqResourceGroup { Param( [parameter(Mandatory = $true)] [string] $ApplicationCode, [parameter(Mandatory = $true)] [string] $EnvironmentName, [parameter(Mandatory = $true)] [string] $Location, [parameter(Mandatory = $false)] [string] $UniqueNamePhrase = $null, [parameter(Mandatory = $true)] [object] $Tags, [parameter(Mandatory = $true)] [string] $BudgetAmount, [parameter(Mandatory = $true)] [string] $BudgetAlertEmailAddresses ) $resourceGroupName = Get-SpqResourceName ` -ApplicationCode $ApplicationCode ` -EnvironmentName $EnvironmentName ` -UniqueNamePhrase $UniqueNamePhrase ` -ServiceTypeName "ResourceGroup" ` -Location "centralus" New-AzResourceGroup -Name $resourceGroupName ` -Location $Location -Tag $Tags $date = Get-Date $year = $date.Year $month = $date.Month $startDate = Get-Date -Year $year -Month $month -Day 1 $startDateStr = '{0:yyyy-MM-dd}' -f $startDate $properties = @{ "amount" = "$BudgetAmount"; "category" = "cost"; "timegrain" = "monthly"; "timeperiod" = @{"startdate" = "$startDateStr" }; "contactemail" = "$BudgetAlertEmailAddresses" } $budgetName = $resourceGroupName + "Budget" New-AzResource -Properties $properties -ResourceName $budgetName -ResourceType Microsoft.Consumption/budgets -ResourceGroupName $resourceGroupName -Force } |