从ARM模板创建Azure web app插槽,而不复制原始web app配置
我正在尝试通过ARM模板创建web应用程序插槽 我能够创建它们,但看起来默认行为是将它们创建为当前web应用程序状态的副本。这将导致我的插槽继承应用程序设置、连接字符串、虚拟目录等 这里有一个复制样本,演示了该行为 我希望我的插槽干净、新鲜,这是azure门户的默认行为。门户允许用户通过指定创建插槽时发布的从ARM模板创建Azure web app插槽,而不复制原始web app配置,azure,azure-web-app-service,azure-resource-manager,arm-template,Azure,Azure Web App Service,Azure Resource Manager,Arm Template,我正在尝试通过ARM模板创建web应用程序插槽 我能够创建它们,但看起来默认行为是将它们创建为当前web应用程序状态的副本。这将导致我的插槽继承应用程序设置、连接字符串、虚拟目录等 这里有一个复制样本,演示了该行为 我希望我的插槽干净、新鲜,这是azure门户的默认行为。门户允许用户通过指定创建插槽时发布的“configSource”:“值来选择行为 在ARM模板中是否也可以实现同样的效果 在ARM模板中是否也可以实现同样的效果 如果我使用你提到的模板,我也可以在我这边复制它。我也找不到通过指定
“configSource”:“
值来选择行为
在ARM模板中是否也可以实现同样的效果
在ARM模板中是否也可以实现同样的效果
如果我使用你提到的模板,我也可以在我这边复制它。我也找不到通过指定“configSource”来选择行为的方法:“,您可以直接给Azure团队
我通过在部署期间重写配置来解决这个问题。对我来说,它工作正常。您可以使用以下代码替换tempalte中的creating WebApp插槽代码
{
"apiVersion": "2015-08-01",
"name": "maintenance",
"type": "slots",
"location": "[resourceGroup().location]",
"dependsOn": [
"[resourceId('Microsoft.Web/Sites', variables('webSiteName'))]"
],
"properties": {
},
"resources": [
{
"apiVersion": "2015-08-01",
"type": "config",
"name": "connectionstrings",
"location": "East US",
"dependsOn": [
"[resourceId('Microsoft.Web/Sites/Slots', variables('webSiteName'), 'maintenance')]"
],
"properties": {}
},
{
"apiVersion": "2015-08-01",
"type": "config",
"name": "web",
"tags": {
"displayName": "Website configuration"
},
"dependsOn": [
"[resourceId('Microsoft.Web/Sites/Slots', variables('webSiteName'),'maintenance')]"
],
"properties": {
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": true,
"virtualDirectories": null
}
]
}
}
]
}
要防止从生产应用程序复制设置,只需在插槽
属性中添加一个空的siteConfig
对象。e、 g
{
"apiVersion": "2015-08-01",
"type": "slots",
"name": "maintenance",
"location": "[resourceGroup().location]",
"dependsOn": [
"[resourceId('Microsoft.Web/Sites/', variables('webSiteName'))]"
],
"properties": {
"siteConfig": { }
}
}
我发送了一个示例来说明您的回购。如果门户具有您想要的行为,是否可以在那里对其进行模拟,然后查看生成的自动化脚本?生成的模板并不明智,它是所有插槽设置的完全转储。如果我这样做,这意味着我必须在每个插槽中复制每个网站配置值。这将是一场噩梦。我正在寻找一种聪明的方法来实现这一点,就像门户网站正在做的那样。感谢您确认您得到了相同的行为。覆盖现有的基本配置是我想要避免的,因为这将很难维护,也无法正确扩展。为什么要在这么简单的情况下寻找复杂的东西:)ARM模板真的需要一个全面的文档才能成为真正高效的解决方案。。。现在,查找有关如何编写模板的信息要比手动或老式powershell管理资源花费更多的时间script@GGirard我同意有些事情比他们应该知道的要困难得多。希望下一个需要它的人会发现这个问题:)