Я хотел бы установить строки подключения и параметры приложения моего веб-приложения Azure с помощью powershell. И я бы хотел, чтобы эти настройки были привязаны к слоту, а не к приложению при его замене.
Код настроек приложения выглядит так и работает:
$PropertiesObject = @{"SMTPUser"="myuser"; "SMTPPassword"="secretpwd";}
$webAppName = "mywebapp"
$slotName = "demo"
$resourceGroupName = "myResourceGroup"
New-AzureRmResource -PropertyObject $PropertiesObject -ResourceGroupName $resourceGroupName -ResourceType Microsoft.Web/sites/slots/config -ResourceName $webAppName/$slotName/appsettings -ApiVersion 2015-08-01 -Force
$stickSlotConfigObject = @{"connectionStringNames"=@(); "appSettingNames" = @("SMTPUserName","SMTPPassword");}
$result = Set-AzureRmResource -PropertyObject $stickSlotConfigObject -ResourceGroupName $resourceGroupName -ResourceType Microsoft.Web/sites/config -ResourceName $webAppName/slotConfigNames -ApiVersion 2015-08-01 -Force
Это работает. Когда я перехожу к колонке слота веб-приложения на портале Azure, флажок «Настройка слота» установлен так, как я этого хочу.
Я борюсь с тем, как установить строки подключения, чтобы также установить флажок «настройка слота». Я попробовал следующее,
$PropertiesObject = @{
AzureWebJobsStorage = @{
Type = "Custom";
Value = "somestring"
};
Common = @{
Type = "SQLAzure";
Value = "somedatabasestring"
};
};
$webAppName = "mywebapp"
$slotName = "demo"
$resourceGroupName = "myResourceGroup"
New-AzureRmResource -PropertyObject $PropertiesObject -ResourceGroupName $resourceGroupName -ResourceType Microsoft.Web/sites/slots/config -ResourceName $webAppName/$slotName/appsettings -ApiVersion 2015-08-01 -Force
$stickSlotConfigObject = @{"appSettingNames"=@();"connectionStringNames"=@("AzureWebJobsStorage","Common"); }
$result = Set-AzureRmResource -PropertyObject $stickSlotConfigObject -ResourceGroupName $resourceGroupName -ResourceType Microsoft.Web/sites/config -ResourceName $webAppName/appsettings -ApiVersion 2015-08-01 -Force
Это не сработало. Я получил следующую ошибку:
New-AzureRmResource : {"Code":"BadRequest","Message":"The parameter properties has an invalid value.","Target":null,"Details":[{"Message":"The parameter properties has an invalid value."},{"Code":"BadRequest"},{"ErrorEntity":{"Code":"BadRequest","Message":"The parameter properties has an invalid value.","ExtendedCode":"51008","MessageTemplate":"The parameter {0} has an invalid value.","Parameters":["properties"],"InnerErrors":null}}],"Innererror":null}
Я попробовал еще одну настройку (о которой забыл), и она сказала, что объект $PropertiesObject имеет неправильный формат.
Как мне закодировать его в Powershell, чтобы я мог установить флажок настройки слота в строке подключения веб-приложения (или настроить его как «липкий»?