Intellipaat Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Azure by (45.3k points)

I want to write a script that run using azure power shell to automate adding the Web Application configuration

Azure > MyWebApp > Application Settings > App settings

It's look like key = "value"

I wrote this script:

###########################

# MyApp Config Automation #

###########################

#Begin

$subscriptionName="MySubscriptionName"

$webSiteName="MyWebAppName"

$storageAccountName="StorageAccountName"

########################################

$userName = "[email protected]"

$securePassword = ConvertTo-SecureString -String "mypass" -AsPlainText -Force

#####################################

$cred = New-Object System.Management.Automation.PSCredential($userName, $securePassword)

#####################################

Add-AzureAccount -Credential $cred 

Select-AzureSubscription -SubscriptionName $subscriptionName -Default

####################################

Get-AzureWebsite -Name $webSiteName

#End

But, I know that the above script only gets my web application, now I need to access MyWebApp > Application Settings > App settings and give the script file/array of my new App settings and the script check if there are any new App Settings key it will add it to App Settings, if there are any existing keys it will override its value. What is the steps or APIS or can I do that with azure power shell?

Edit: This script can Automate creating a new web application and adding App Settings to it:

##############################################
# Creating website and Adding Configs Script #
##############################################
$webSiteName="mywebsite"
$storageAccountName="storageaccount"
$subscriptionName="mysubsc"
$userName = "myaccount"
$securePassword = ConvertTo-SecureString -String "mypass" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($userName, $securePassword)
Add-AzureAccount -Credential $cred 
Select-AzureSubscription -SubscriptionName $subscriptionName -Default
New-AzureWebsite -Name $webSiteName
New-AzureStorageAccount –StorageAccountName $storageAccountName -Location "South Central US"
$ClientId="dfgdf6"
$Password="ffefe"
$StorageAccountKey = Get-AzureStorageKey -StorageAccountName $storageAccountName
$AppSettings = @{"StorageAccountPrimary" = $StorageAccountKey.Primary;"StorageAccountSecondary" = $StorageAccountKey.Secondary;"ida:ClientId"=$ClientId;"ida:Password"=$Password}
Set-AzureWebsite -Name $webSiteName -AppSettings $AppSettings

1 Answer

0 votes
by (16.8k points)

Here's an update to it based on the 12/2015 Azure PowerShell commands. The example is for slot-specific settings, if you want global, use Get/Set-AzureRmWebApp and remove the -slot parameter.

$myResourceGroup = 'PartsUnlimitedMRP'

$mySite = 'centpartsunlimited'

$webApp = Get-AzureRMWebAppSlot -ResourceGroupName $myResourceGroup -Name $mySite -Slot production

$appSettingList = $webApp.SiteConfig.AppSettings

$hash = @{}

ForEach ($kvp in $appSettingList) {

    $hash[$kvp.Name] = $kvp.Value

}

$hash['NewKey'] = "NewValue"

$hash['ExistingKey'] = "NewValue"

Set-AzureRMWebAppSlot -ResourceGroupName $myResourceGroup -Name $mySite -AppSettings $hash -Slot production

Browse Categories

...