【发布时间】:2017-09-26 21:28:02
【问题描述】:
我想使用 powershell 设置我的 Azure Web 应用程序的连接字符串和应用程序设置。而且我希望这些设置保留在插槽中,而不是在交换时保留在应用程序中。
应用设置的代码如下所示,并且可以正常工作:
$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 门户中转到 Web 应用程序的插槽刀片时,会根据需要选中“插槽设置”复选框。
我正在为如何设置 连接字符串 以同时选中“插槽设置”框而苦恼。我尝试了以下,
$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 中对其进行编码,以便我可以检查 Web 应用连接字符串的插槽设置复选框(或将其配置为“粘性”?
【问题讨论】:
-
你有关于这个线程的任何更新吗?
-
我测试并接受了下面的答案。
标签: powershell connection-string sticky azure-resource-manager azure-web-app-service