functions/StorageAccount.ps1
function Get-SpqReferenceToStorageKey { Param( [parameter(Mandatory = $true)] [object] $StorageAccount ) $reference = "[listKeys(resourceId('Microsoft.Storage/storageAccounts', '" + $StorageAccount.name + "'), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]" return $reference } function Get-SpqReferenceToStorageConnectionString { Param( [parameter(Mandatory = $true)] [object] $StorageAccount ) $reference = "[concat('DefaultEndpointsProtocol=https;AccountName=" + $StorageAccount.name + ";AccountKey=', ListKeys(resourceId('Microsoft.Storage/storageAccounts', '" + $StorageAccount.name + "'), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value)]" return $reference } function Get-SpqStorageAccount { Param( [parameter(Mandatory = $true)] [string] $ApplicationCode, [parameter(Mandatory = $true)] [string] $EnvironmentName, [parameter(Mandatory = $true)] [string] $Location, [parameter(Mandatory = $false)] [string] $UniqueNamePhrase = $null, [string] $ExceptionGuid, [parameter(Mandatory = $true)] [string] $StorageAccessTier ) $storageName = Get-SpqResourceName ` -ApplicationCode $ApplicationCode ` -EnvironmentName $EnvironmentName ` -UniqueNamePhrase $UniqueNamePhrase ` -ServiceTypeName "Microsoft.Storage/storageAccounts" ` -Location $Location $json = ' { "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-04-01", "name": "' + $storageName + '", "location": "' + $Location + '", "sku": { "name": "' + $StorageAccessTier + '" }, "kind": "StorageV2", "properties": { "networkAcls": { "bypass": "AzureServices", "virtualNetworkRules": [], "ipRules": [], "defaultAction": "Allow" }, "supportsHttpsTrafficOnly": true, "encryption": { "services": { "file": { "enabled": true }, "blob": { "enabled": true } }, "keySource": "Microsoft.Storage" }, "accessTier": "Hot" }, "metadata": { "exceptionGuid1": "' + $ExceptionGuid + '" } } ' return ConvertFrom-Json $json } function Get-SpqStorageBlobServiceConfig { Param( [parameter(Mandatory = $true)] [string] $ApplicationCode, [parameter(Mandatory = $true)] [string] $EnvironmentName, [parameter(Mandatory = $true)] [string] $Location, [parameter(Mandatory = $true)] [object] $StorageAccount, [string] $ExceptionGuid ) $json = ' { "type": "Microsoft.Storage/storageAccounts/blobServices", "apiVersion": "2019-04-01", "name": "' + $StorageAccount.name + '/default", "dependsOn": [ "[resourceId(''Microsoft.Storage/storageAccounts'', ''' + $StorageAccount.name + ''')]" ], "properties": { "cors": { "corsRules": [] }, "deleteRetentionPolicy": { "enabled": false } } } ' return ConvertFrom-Json $json } |