Azure App Service自动缩放时,minimumElasticInstanceCount能否固定到特定部署槽?
如何将Azure App Service的minimumElasticInstanceCount固定到部署槽
可以通过将minimumElasticInstanceCount配置为槽级专属设置来实现固定,避免槽交换时该配置随应用迁移。
核心原因
默认情况下,你在根站点siteConfig中设置的minimumElasticInstanceCount是站点级共享配置,所有部署槽都会继承这个值,槽交换时该配置会跟随槽的内容一起迁移,这就是你遇到生产槽和部署槽预热实例数互换的原因。
解决方案
在Bicep模板中,不要在根站点的siteConfig里设置minimumElasticInstanceCount,而是为每个槽单独配置该参数。槽级的siteConfig是独立的,交换操作不会覆盖或迁移这些专属配置。
Bicep示例代码
// 定义App Service计划 resource appServicePlan 'Microsoft.Web/serverfarms@2023-01-01' = { name: 'your-app-service-plan' location: resourceGroup().location sku: { name: 'P1V3' tier: 'PremiumV3' size: 'P1V3' family: 'Pv3' capacity: 1 } } // 根App Service(不设置minimumElasticInstanceCount) resource appService 'Microsoft.Web/sites@2023-01-01' = { name: 'your-app-name' location: resourceGroup().location properties: { serverFarmId: appServicePlan.id siteConfig: { // 仅配置站点级通用设置,不包含minimumElasticInstanceCount alwaysOn: true http20Enabled: true } } } // 部署槽:固定1个预热实例 resource stagingSlot 'Microsoft.Web/sites/slots@2023-01-01' = { parent: appService name: 'staging' properties: { siteConfig: { minimumElasticInstanceCount: 1 // 可添加其他槽专属配置 } } } // 生产槽:固定2个预热实例 resource productionSlot 'Microsoft.Web/sites/slots@2023-01-01' = { parent: appService name: 'production' properties: { siteConfig: { minimumElasticInstanceCount: 2 // 可添加其他槽专属配置 } } }
验证方式
部署完成后执行槽交换,通过Azure门户或Azure CLI查看两个槽的minimumElasticInstanceCount值,会发现各自保持初始配置,不会随交换操作改变。
内容的提问来源于stack exchange,提问作者Iain Brown
相关产品推荐
相关产品推荐

