microsoft management powershell azure azure-powershell

powershell - management - panel azure login



Agregar una configuración de la aplicación a la aplicación web Azure existente utilizando Azure Power Shell (2)

Recuperar la configuración de la aplicación

Primero establece estas dos variables.

$myResourceGroup = ''RESOURCE_GROUP_NAME'' $mySite = ''SITE_NAME''

Luego cambie al nuevo modo Administrador de recursos e inicie sesión en su cuenta.

Switch-AzureMode AzureResourceManager Get-AzureAccount

Luego recupera la configuración de la aplicación. ( Tenga en cuenta que una marca de retroceso (`) significa una nueva línea).

(Invoke-AzureResourceAction -ResourceGroupName $myResourceGroup ` -ResourceType Microsoft.Web/sites/Config -Name $mySite/appsettings ` -Action list -ApiVersion 2015-08-01 -Force).Properties

Agregar / actualizar la configuración de la aplicación

Para actualizar las configuraciones, primero póngalas en una variable.

$props = (Invoke-AzureResourceAction -ResourceGroupName $myResourceGroup ` -ResourceType Microsoft.Web/sites/Config -Name $mySite/appsettings ` -Action list -ApiVersion 2015-08-01 -Force).Properties

Para usar Set-AzureWebsite convierte la variable a una tabla hash.

$hash = @{} $props | Get-Member -MemberType NoteProperty | % { $hash[$_.Name] = $props.($_.Name) }

Ahora agregue / actualice valores en la tabla hash.

$hash.NewKey = "NewValue" $hash.ExistingKey = "NewValue"

A continuación, vuelva al modo de gestión de servicios y confirme la configuración.

Switch-AzureMode AzureServiceManagement Set-AzureWebsite -Name $mySite -AppSettings $hash

Listado completo de códigos

$myResourceGroup = ''RESOURCE_GROUP_NAME'' $mySite = ''SITE_NAME'' Switch-AzureMode AzureResourceManager Get-AzureAccount (Invoke-AzureResourceAction -ResourceGroupName $myResourceGroup ` -ResourceType Microsoft.Web/sites/Config -Name $mySite/appsettings ` -Action list -ApiVersion 2015-08-01 -Force).Properties $props = (Invoke-AzureResourceAction -ResourceGroupName $myResourceGroup ` -ResourceType Microsoft.Web/sites/Config -Name $mySite/appsettings ` -Action list -ApiVersion 2015-08-01 -Force).Properties $hash = @{} $props | Get-Member -MemberType NoteProperty | % { $hash[$_.Name] = $props.($_.Name) } $hash.NewKey = "NewValue" $hash.ExistingKey = "NewValue" Switch-AzureMode AzureServiceManagement Set-AzureWebsite -Name $mySite -AppSettings $hash

Notas

AzureServiceManagement y AzureResourceManager no están diseñados para ser utilizados en la misma sesión. Por ahora, este último no parece permitir la actualización de la configuración de la aplicación a través de Set-AzureResource . Lo anterior es una solución. Otra forma es usar la CLI de Azure en lugar de PowerShell.

Quiero escribir un script que se ejecute usando Azure Power Shell para automatizar la adición de la configuración de la Aplicación Web

Azure> MyWebApp> Configuración de la aplicación> Configuración de la aplicación

Parece que key = "value"

Escribo este 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

pero sé que el script anterior es solo obtener mi aplicación web, ahora necesito acceder a MyWebApp> Configuración de la aplicación> Configuración de la aplicación y dar al script / matriz de mi nueva configuración de la aplicación y al script comprobar si hay alguna nueva clave de Configuración de la aplicación lo agregará a la configuración de la aplicación; si hay alguna tecla existente, anulará su valor. ¿Cuáles son los pasos o APIS o puedo hacer eso con Azure Power Shell?

Editar: este script puede automatizar la creación de una nueva aplicación web y agregarle ajustes de la aplicación:

############################################## # 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


Aquí hay una actualización basada en los comandos de Azure PowerShell 12/2015. El ejemplo es para la configuración específica de la ranura, si desea global, use Get / Set-AzureRmWebApp y elimine el parámetro -slot.

$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