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

如何用PowerShell检查Azure Cosmos DB是否启用自动缩放

Cosmos DB自动缩放检查与自动开启PowerShell实现

所有Az.CosmosDB模块下的吞吐量查询命令返回的对象,都可以通过AutoscaleSettings属性判断自动缩放状态:

  • 若该属性非空、且MaxThroughput字段存在有效值,代表已开启自动缩放
  • 若该属性为空、仅存在固定Throughput字段值,代表当前为手动吞吐量模式,未开启自动缩放

前置准备

执行脚本前先完成环境准备:

# 安装Az.CosmosDB模块(已安装可跳过)
Install-Module -Name Az.CosmosDB -Force -AllowClobber
# 登录Azure账号
Connect-AzAccount
# 切换到目标订阅
Select-AzSubscription -SubscriptionId "<替换为你的订阅ID>"

完整可运行脚本

# -------------------------- 参数配置区 --------------------------
$resourceGroupName = "<替换为目标资源组名称>"
$cosmosAccountName = "<替换为Cosmos DB账号名称>"
$databaseName = "<替换为目标数据库名称>"
# 若要检查容器级吞吐量,填写容器名;留空则检查数据库级吞吐量
$containerName = ""
# 自动缩放最大吞吐量配置,合法值为4000及以上,步长1000
$autoscaleMaxThroughput = 4000
# ----------------------------------------------------------------

# 获取当前吞吐量配置
if ([string]::IsNullOrEmpty($containerName)) {
    $throughputConfig = Get-AzCosmosDBSqlDatabaseThroughput `
        -ResourceGroupName $resourceGroupName `
        -AccountName $cosmosAccountName `
        -Name $databaseName
    $targetResource = "数据库 $databaseName"
} else {
    $throughputConfig = Get-AzCosmosDBSqlContainerThroughput `
        -ResourceGroupName $resourceGroupName `
        -AccountName $cosmosAccountName `
        -DatabaseName $databaseName `
        -Name $containerName
    $targetResource = "容器 $databaseName/$containerName"
}

# 检查自动缩放状态并执行对应操作
if ($null -ne $throughputConfig.AutoscaleSettings -and $throughputConfig.AutoscaleSettings.MaxThroughput -gt 0) {
    Write-Host "$targetResource 已启用自动缩放,当前配置最大吞吐量为 $($throughputConfig.AutoscaleSettings.MaxThroughput) RU/s,无需操作"
} else {
    Write-Host "$targetResource 当前为手动吞吐量模式,固定吞吐量为 $($throughputConfig.Throughput) RU/s,正在开启自动缩放..."
    # 调用更新命令开启自动缩放
    if ([string]::IsNullOrEmpty($containerName)) {
        Update-AzCosmosDBSqlDatabaseThroughput `
            -ResourceGroupName $resourceGroupName `
            -AccountName $cosmosAccountName `
            -Name $databaseName `
            -AutoscaleMaxThroughput $autoscaleMaxThroughput
    } else {
        Update-AzCosmosDBSqlContainerThroughput `
            -ResourceGroupName $resourceGroupName `
            -AccountName $cosmosAccountName `
            -DatabaseName $databaseName `
            -Name $containerName `
            -AutoscaleMaxThroughput $autoscaleMaxThroughput
    }
    Write-Host "操作完成,$targetResource 已成功开启自动缩放,最大吞吐量设置为 $autoscaleMaxThroughput RU/s"
}

适配说明

  • 上述脚本默认针对Core(SQL) API编写,若使用MongoDB、Gremlin、Cassandra等其他API,只需将命令中的Sql关键字替换为对应API的命令关键字即可,状态判断逻辑完全通用
  • 手动吞吐量切换为自动缩放为在线操作,不会造成业务中断
  • 执行脚本的账号至少需要拥有Cosmos DB参与者权限,才能完成吞吐量修改操作
  • 若当前手动吞吐量设置低于400RU/s,开启自动缩放时会自动适配到最小阈值,无需额外调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:18:23