Private/New-CustomAzStorageAccount.ps1

function Global:New-CustomAzStorageAccount {
    [CmdletBinding()]
    param(        
        [Parameter(Mandatory=$true, Position = 0)]
        [string]
        $ResourceGroupName,        
        [Parameter(Mandatory=$true, Position = 1)]
        [string]
        $ResourceLocation,        
        [Parameter(Mandatory=$true, Position = 2)]
        [string]
        $StorageAccountName,        
        [Parameter(Mandatory=$true, Position = 3)]
        [string]
        $StorageAccountSku

    )
    process {
        Write-CustomHost -Message "Checking if Storage Account already exists..."
        $storageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -ErrorAction SilentlyContinue
        if (-not($storageAccount)) {
            Write-CustomHost -Message "Creating Storage Account $StorageAccountName..."
            $storageAccount = New-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -SkuName $StorageAccountSku -Location $ResourceLocation
            Write-CustomHost -Message "Storage Account '$StorageAccountName' created."
        }
        $storageAccount
    }    
}