Azure CosmosDB如何连接到模拟器上的Gremlin控制台

3
我希望您能用 Gremlin 控制台连接到 CosmosDB 模拟器。
yaml 文件应该是什么样子的? 目前我尝试了:
hosts: [localhost]
port: 8182
serializer: { className: 
org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0, config: { 
serializeResultToString: true }}

以下是带有响应的命令行调用:

enter image description here

这里是没有“:”的错误消息:

enter image description here

但这并不起作用。有什么想法吗?

祝好 Markus


请问您能否分享更多关于您所遇到的错误/行为的细节? - jbmusso
添加了一个命令调用和响应的截图。 - Markus Benz
2个回答

2

1
我尝试使用gremlin console连接我的Azure Cosmos DB,这很顺利。
我的配置如下:
hosts: [jaygong.graphs.azure.com]
port: 443
username: /dbs/testdb/colls/jay
password: ****************
connectionPool: {enableSsl: true}
serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { serializeResultToString: true }}

enter image description here

然后,我按照你的配置尝试连接 Azure Cosmos DB Emulator

hosts: [localhost]
port: 8081
username: /dbs/familyDB/colls/FamilyCollection
password: C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==
connectionPool: {
  enableSsl: true}
serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { serializeResultToString: true }}

经过多次尝试,我也遇到了与您相同的问题。

enter image description here

最后,我找到了这个反馈链接,看起来Cosmos DB Emulator目前不支持Gremlin API。

考虑成本,我建议您在开发阶段使用Apache TinkerPop服务器代替Azure Cosmos DB Emulator在本地测试您的代码。测试完成后,切换到Azure Cosmos DB。

此外,Azure Cosmos DB Emulator支持提到的Graph API这里

通过使用Azure Cosmos DB模拟器,您可以使用图形API进行本地开发和测试,而无需创建Azure订阅或产生任何费用。当您对模拟器中应用程序的工作方式感到满意时,可以切换到云中使用Azure Cosmos DB帐户。

这段文字可以在这里找到。然而,在我对源代码的研究后,这里提到的模拟器支持的Graph API仅适用于.Net,不适用于javanode.js

因此,看起来Azure Cosmos DB模拟器存在缺陷,因为它可能没有跟上Azure Cosmos DB服务最近的变化。

希望对您有所帮助。


谢谢您的回复,但是当我收到这个错误信息“groovysh_evaluate类没有g属性”时,它并没有起作用。 - Markus Benz
@MarkusBenz 你好,请查看我的新回答。谢谢。 - Jay Gong
如果您使用Apache TinkerPop服务器进行开发,请确保a)检查您使用的查询仅使用CosmosDB支持的Gremlin子集,并b)留出时间在完整的Azure CosmosDB图上进行测试和优化。 - Alan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接