在JavaScript环境下如何获取Azure Cosmos DB的账户名称
方法1:从连接字符串直接解析(推荐)
Cosmos DB连接字符串格式固定,无需调用接口即可直接提取账户名,可靠性最高:
const {CosmosClient} = require("@azure/cosmos"); const CONNECTION_STRING = process.env["CosmosDBConnectionString"]; const DATABASE_ID = process.env["CosmosDBDatabaseId"]; // 提取账户名工具方法 function getCosmosAccountName(connStr) { const endpointPrefix = connStr.match(/AccountEndpoint=https:\/\/([^.]+)\./)[1]; return endpointPrefix; } const accountName = getCosmosAccountName(CONNECTION_STRING); // 输出结果即为你的Cosmos DB账户名称
方法2:从已获取的端点字段提取
如果你已经调用了getDatabaseAccount接口拿到了区域接入端点,可以直接从返回的databaseAccountEndpoint字段切割提取:
const client = new CosmosClient(CONNECTION_STRING); const resource = (await client.getDatabaseAccount()).resource; const regionEndpoint = resource.readableLocations[0].databaseAccountEndpoint; // 处理区域端点的区域后缀,提取原始账户名 const accountName = regionEndpoint.replace('https://', '').split('.')[0].split('-').slice(0, -1).join('-'); // 如果你的账户没有开通多区域路由,可简化为下面的代码 // const accountName = regionEndpoint.replace('https://', '').split('.')[0];
提取得到的账户名和Azure门户中显示的Cosmos DB账户名称完全对应。

内容的提问来源于stack exchange,提问作者Yuzuki Ayase
相关产品推荐
相关产品推荐

