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

如何通过连接字符串判断Azure Cosmos DB MongoDB API数据库是否开启自动伸缩

操作指南

核心结论

仅通过搭载MongoDB API的Azure Cosmos DB连接字符串无法直接判断对应数据库是否启用自动伸缩功能,连接字符串仅存储账户端点、访问密钥、协议参数这类基础连接鉴权信息,不包含吞吐量配置相关字段。你可以配合Azure官方SDK在express.js项目中实现查询需求,具体操作如下:

前置准备

首先安装所需依赖包:

npm install @azure/arm-cosmosdb @azure/identity

实现步骤

  • 从现有连接字符串中解析Cosmos DB账户名
    示例代码:

    const url = require('url');
    // 从环境变量读取Cosmos DB连接字符串
    const cosmosConnStr = process.env.COSMOS_CONNECTION_STRING;
    // 提取账户名
    const endpointMatch = cosmosConnStr.match(/@([^/]+)\//);
    const cosmosHost = new url.URL(`https://${endpointMatch[1]}`);
    const cosmosAccountName = cosmosHost.hostname.split('.')[0];
    
  • 调用Azure管理SDK查询自动伸缩配置
    示例代码(express路由场景):

    const { CosmosDBManagementClient } = require("@azure/arm-cosmosdb");
    const { DefaultAzureCredential } = require("@azure/identity");
    
    // 替换为你的实际配置
    const AZURE_SUBSCRIPTION_ID = "你的Azure订阅ID";
    const AZURE_RESOURCE_GROUP = "Cosmos账户所属资源组名称";
    const TARGET_DATABASE_NAME = "需要查询的数据库名称";
    
    async function isDbAutoscaleEnabled() {
      const credential = new DefaultAzureCredential();
      const cosmosClient = new CosmosDBManagementClient(credential, AZURE_SUBSCRIPTION_ID);
      // 查询数据库层级的吞吐量配置
      const throughputConfig = await cosmosClient.mongoDBResources.getMongoDBDatabaseThroughput(
        AZURE_RESOURCE_GROUP,
        cosmosAccountName,
        TARGET_DATABASE_NAME
      );
      // 存在autoscaleSettings字段则表示启用自动伸缩
      return !!throughputConfig.resource?.autoscaleSettings;
    }
    
    // 接口示例
    app.get('/check-autoscale-status', async (req, res) => {
      try {
        const status = await isDbAutoscaleEnabled();
        res.json({ autoscaleEnabled: status });
      } catch (error) {
        res.status(500).json({ error: error.message });
      }
    });
    

如果你配置的是集合层级的吞吐量,将查询方法替换为getMongoDBCollectionThroughput并传入对应集合名称即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 11:12:03