如何获取Gremlin.Net连接Azure CosmosDB (Gremlin API)的凭证?
使用Gremlin.Net连接Azure CosmosDB Gremlin API的凭证获取指南
我来帮你理清用Gremlin.Net连接Azure CosmosDB Gremlin API时需要的所有凭证怎么找,其实这些信息都在Azure门户里,和你用其他CosmosDB NuGet包时的密钥是互通的,不用额外生成:
1. 端口与SSL设置
- 端口固定为
443,因为CosmosDB Gremlin API仅支持HTTPS加密连接,Gremlin.Net默认会启用SSL,你只需要确保配置端口为443即可。
2. 用户名(Gremlin认证用户名)
这里要注意,Gremlin.Net用的用户名不是单纯的终结点URL,而是数据库+图容器的路径格式:/dbs/{你的数据库名}/colls/{你的图容器名}
- 怎么获取基础信息?
- 先在Azure门户进入你的CosmosDB账户,左侧导航栏选「数据资源管理器」,切换到「Gremlin API」标签页,就能看到你创建的数据库和图容器;
- 或者在「设置」→「密钥」页面,找到「Gremlin终结点」,里面的
<账户名>.gremlin.cosmos.azure.com就是你的账户域名部分,但用户名必须按上面的路径格式拼接。
3. 密码(认证密钥)
这个最简单,直接用你已经拿到的CosmosDB主密钥或辅助密钥就行——和你用Microsoft.Azure.DocumentDB、Microsoft.Azure.Graphs时的密钥完全一致!
- 获取位置:Azure门户的CosmosDB账户→「设置」→「密钥」页面,复制「主密钥」或「辅助密钥」即可。
完整连接代码示例
下面是一个可直接复用的Gremlin.Net连接代码,替换成你的实际信息就能用:
using Gremlin.Net.Driver; using Gremlin.Net.Driver.Remote; using Gremlin.Net.Structure.IO.GraphSON; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { // 替换为你的实际配置 var accountName = "your-cosmosdb-account-name"; var primaryKey = "your-primary-key"; var dbName = "your-database-name"; var graphContainerName = "your-graph-container-name"; // 配置Gremlin服务器连接 var gremlinServer = new GremlinServer( host: $"{accountName}.gremlin.cosmos.azure.com", port: 443, enableSsl: true, username: $"/dbs/{dbName}/colls/{graphContainerName}", password: primaryKey); // 创建Gremlin客户端 var gremlinClient = new GremlinClient( gremlinServer, new GraphSON2Reader(), new GraphSON2Writer(), GremlinClient.GraphSON2MimeType); // 测试查询(获取前1个顶点) var results = await gremlinClient.SubmitAsync<dynamic>("g.V().limit(1)"); foreach (var result in results) { System.Console.WriteLine($"查询结果:{result}"); } } }
几个关键注意点
- 用户名的路径格式一定要正确,少了任何一部分都会导致认证失败;
- 确保你的CosmosDB账户创建时选择的是「Gremlin API」类型,否则无法用Gremlin.Net连接;
- 如果遇到连接超时,检查你的网络是否允许访问443端口,以及CosmosDB账户的防火墙规则是否开放了你的IP地址。
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

