如何通过Azure资源图浏览器跨订阅查询全量Cosmos DB账户?
获取Azure Cosmos DB所有账户的正确查询方法
首先需要明确:你当前查询里的Microsoft.DBforPostgreSQL/databaseaccounts和Microsoft.DBforMariaDB/databaseaccounts不属于Cosmos DB服务,是独立的PostgreSQL/MariaDB数据库服务资源类型,会导致结果混入非Cosmos DB的资源。
所有Cosmos DB账户的核心资源类型统一为Microsoft.DocumentDB/databaseaccounts,不同API(如SQL、MongoDB、Cassandra等)只是该资源的kind属性不同,而非不同的资源类型。
方法1:用Azure资源图获取完整的Cosmos DB相关资源类型
如果需要确认所有和Cosmos DB相关的资源类型,运行以下Kusto查询:
Resources | where type contains "Microsoft.DocumentDB" | distinct type
若仅需账户级别的资源类型,可过滤结尾为databaseaccounts的条目:
Resources | where type endswith "Microsoft.DocumentDB/databaseaccounts" | distinct type
方法2:通过Azure CLI获取Cosmos DB资源提供者的所有类型
执行以下CLI命令,直接列出Microsoft.DocumentDB资源提供者下的所有资源类型:
az provider show --namespace Microsoft.DocumentDB --query "resourceTypes[].resourceType" --output tsv
正确的Cosmos DB账户查询语句
要跨订阅获取所有Cosmos DB账户,无需枚举多个资源类型,直接查询统一的账户类型即可,还可同时返回对应的API类型:
Resources | where type == "Microsoft.DocumentDB/databaseaccounts" | project 账户名称=name, 资源组=resourceGroup, 订阅ID=subscriptionId, API类型=kind
内容的提问来源于stack exchange,提问作者eztam
相关产品推荐
相关产品推荐

