You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Bicep中为资源设置自动缩放(预览版)

Azure自动缩放预览版自动模式的Bicep实现方案

可行,虽然官方Bicep文档可能尚未同步预览版功能的类型定义,但可以通过以下思路实现:

  • 导出ARM模板转Bicep:既然你已经能在Azure门户配置自动模式,可按以下步骤获取对应配置的Bicep代码:

    1. 在门户中完成自动缩放的自动模式配置
    2. 进入对应自动缩放设置资源的「自动化」→「导出模板」页面
    3. 下载生成的ARM JSON模板
    4. 使用Azure CLI命令将JSON转成Bicep:az bicep decompile --file template.json
      生成的Bicep文件会包含预览版自动模式的完整配置逻辑,直接复用即可。
  • 手动编写Bicep代码:如果需要手动构建,核心要点如下:

    1. 指定预览版API版本:自动缩放资源类型Microsoft.Insights/autoscaleSettings需使用对应预览API版本(如2023-10-01-preview,具体以门户导出模板中的版本为准)
    2. 配置自动模式属性:在profiles数组中,添加automatic字段(预览版特有),定义缩放的核心逻辑(如基于指标的自动扩缩规则)
    3. 处理类型缺失:若Bicep的内置类型未包含预览版属性,可使用any()类型包裹对应配置块,避免语法报错

示例代码片段:

param vmssName string
param location string

resource autoscaleSetting 'Microsoft.Insights/autoscaleSettings@2023-10-01-preview' = {
  name: 'autoscale-${vmssName}'
  location: location
  properties: {
    targetResourceUri: resourceId('Microsoft.Compute/virtualMachineScaleSets', vmssName)
    enabled: true
    profiles: [
      {
        name: 'DefaultProfile'
        capacity: {
          minimum: '1'
          maximum: '10'
          default: '2'
        }
        // 预览版自动模式配置,用any()兼容未同步的类型定义
        automatic: any({
          scaleOut: {
            rules: [
              {
                metricTrigger: {
                  metricName: 'Percentage CPU'
                  metricNamespace: 'Microsoft.Compute/virtualMachineScaleSets'
                  metricResourceUri: resourceId('Microsoft.Compute/virtualMachineScaleSets', vmssName)
                  timeGrain: 'PT1M'
                  statistic: 'Average'
                  timeWindow: 'PT5M'
                  timeAggregation: 'Average'
                  operator: 'GreaterThan'
                  threshold: 70
                }
                scaleAction: {
                  direction: 'Increase'
                  type: 'ChangeCount'
                  value: '1'
                  cooldown: 'PT5M'
                }
              }
            ]
          }
          scaleIn: {
            rules: [
              {
                metricTrigger: {
                  metricName: 'Percentage CPU'
                  metricNamespace: 'Microsoft.Compute/virtualMachineScaleSets'
                  metricResourceUri: resourceId('Microsoft.Compute/virtualMachineScaleSets', vmssName)
                  timeGrain: 'PT1M'
                  statistic: 'Average'
                  timeWindow: 'PT10M'
                  timeAggregation: 'Average'
                  operator: 'LessThan'
                  threshold: 30
                }
                scaleAction: {
                  direction: 'Decrease'
                  type: 'ChangeCount'
                  value: '1'
                  cooldown: 'PT10M'
                }
              }
            ]
          }
        })
      }
    ]
    notifications: []
  }
}
  • 验证部署:使用Azure CLI部署Bicep文件时,确保指定的API版本与配置匹配,命令示例:
    az deployment group create --resource-group <your-resource-group> --template-file autoscale.bicep --parameters vmssName=<your-vmss-name> location=<your-location>

内容的提问来源于stack exchange,提问作者Luca Prodan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 01:37:31