SamplesV2/UntarAzureFilesWithAzureFunction/env/deploy.ps1 (49 lines of code) (raw):
param([String]$resourcegroupname="dffunctionssample", [String] $uniqueresourcenameprefix = "")
if ( [String]::IsNullOrWhiteSpace($uniqueresourcenameprefix))
{
#Change this to a fixed value to override existing resources instaed of creating new ones on each deployment, for example:
#$uniqueresourcenameprefix = "e1064086576241d39"
$uniqueresourcenameprefix = [System.Guid]::NewGuid().ToString("N").Substring(0,17)
}
if ($uniqueresourcenameprefix.Length -gt 17)
{
"Truncating uniqueresourcenameprefix to 17 characters."
$uniqueresourcenameprefix = $uniqueresourcenameprefix.Substring(0,17)
}
echo "Creating resource group with name " $resourcegroupname
New-AzResourceGroup -Name $resourcegroupname -Location "West US"
echo "Deploying app resources"
$FunctionApp_Name = $uniqueresourcenameprefix + "app"
$StorageAccount_Name = $uniqueresourcenameprefix + "storage"
$DataFactory_Name = $uniqueresourcenameprefix + "factory"
$TemplateParameters = @{
FunctionApp_Name = $FunctionApp_Name;
StorageAccount_Name = $StorageAccount_Name;
DataFactory_Name = $DataFactory_Name
}
$output = (New-AzResourceGroupDeployment `
-ResourceGroupName $resourcegroupname `
-TemplateFile ./deploy.json `
-Mode Incremental `
-TemplateParameterObject $TemplateParameters)
if ($output.ProvisioningState -ne "Succeeded") {
echo "Deploying app resources failed with message: "
$output
exit
}
echo "Creating fileshare in " $StorageAccount_Name
$accountKeys = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname -AccountName $StorageAccount_Name)
$storageContext = New-AzStorageContext $StorageAccount_Name $accountKeys[0].Value
$fileshareName = "filedrop"
New-AzStorageShare -Name $fileshareName -Context $storageContext
echo "Uploading data to storage account " $StorageAccount_Name
Set-AzStorageFileContent -ShareName $fileshareName -Source ".\TestData1.tar" -Context $storageContext
Set-AzStorageFileContent -ShareName $fileshareName -Source ".\TestData2.tar" -Context $storageContext
echo "Creating local settings file for development"
$settingsFileTemplate = Get-Content .\local.settings.json.template
$settingsFileTemplate `
-replace "{fileshareName}", $fileshareName `
-replace "{storageAccountName}", $StorageAccount_Name `
-replace "{storageAccountKey}", $accountKeys[0].Value `
| Set-Content .\local.settings.json
copy .\local.settings.json ..\src\ExtractFunction -Force