有没有办法配置CosmosDB同时使用SQL(DocumentDB)和MongoDB API?

Gre*_*her 3 azure-powershell azure-cli azure-cosmosdb

当我在Azure门户中创建新的CosmosDB数据库时,我必须在各种API(Gremlin,MongoDB,SQL/DocumentDB和Table)之间进行选择.

与Azure门户的许多其他限制一样,我希望有一种方法可以使用PowerShell或Azuzre cli配置新的CosmosDB以使用多个API.

有没有办法在我的CosmosDB实例中添加其他API?如果没有,将来有没有办法做到这一点?

更新: 我刚刚使用Mongo api创建了一个Cosmos DB帐户,并注意到Query Explorer仍然可用,并且允许我输入并执行SQL/DocumentDB查询,因此显然默认是允许两个API(Mongo和SQL)/DocumentDB).但是,我不确定如何获取ConnectionString(AccountKey),以便我可以像azure门户在我自己的客户端中那样使用DocumentDB/SQL API.任何人都有关于如何使用Mongo API从CosmosDB设置连接字符串的想法,以便它是DocumentDB/Sql API的有效连接字符串?

Gre*_*her 5

您可以通过执行以下操作在同一个CosmosDB帐户中使用MongoDB API和DocumentDB/Sql API(这可能也适用于使用Gremlin和Table API设置的CosmosDB帐户,但我还没有尝试过它们.):

首先,使用MongoDB API创建一个新的CosmosDB帐户.一旦配置了新的CosmosDB帐户,您将无法使用已使用DocumentDB/Sql API配置的CosmosDB帐户找到"密钥"刀片.

要获取将客户端连接到DocumentDB/Sql api所需的密钥,请运行以下Azure CLI命令:

az cosmosdb list-keys --name "<your cosmosdb account name>" --resource-group "<name of resource group your cosmosdb lives in>"
Run Code Online (Sandbox Code Playgroud)

现在,您可以在您使用的任何客户端API(.Net,Python等)中使用其中一个密钥,并对您的CosmosDB执行DocumentDB/Sql查询,即使它仅配置为使用MongoDB api.

如果您的客户端API需要"连接字符串"而不是密钥,则编辑普通连接字符串以将此密钥包含在字符串的"AccountKey"部分中.