在本地连接到 Azure Cosmos DB

Connecting locally to Azure Cosmos DB

我正在创建一个 Azure 函数,它下载给定 URL 的 XML 并在预定义的时间将文档存储在 Cosmos DB 中。目前,我使用 Java 在 VSC 本地开发应用程序,还使用 ​​Cosmos DB 模拟器。在我的代码中,我使用以下代码实例化了一个 CosmosClient 对象:

private static CosmosClient cosmosClient = new CosmosClientBuilder().endpoint("https://localhost:8081") .key("C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==").consistencyLevel(ConsistencyLevel.EVENTUAL).buildClient();

每当我 运行 我的代码程序执行时,但在 buildClient() 方法结束后,会创建大量线程,导致以下错误消息:

终端错误信息:

我从模拟器的网络界面获取了 URL 和密钥,所以我的错误在哪里?我是否必须提供额外的凭据。

已解决: 我犯了一个错误,我将 Azure Cosmos 模拟器证书作为 Azure guide mentioned. My system variables only showed at my user version of the JVM, while I loaded the certificate to the global JVM copy, therefore resulting to a signature failure. A complete solution was provided in this post.

添加到错误的 java 密钥库

在 Java azure 函数中,连接到本地 Azure CosmosDB 模拟器在身份验证步骤中失败,因为证书信任库中不存在 CA 证书。通过导入 CA 证书,并设置属性 javax.net.ssl.trustStorejavax.net.ssl.trustStoreType,身份验证步骤将通过。详细信息在此 SO and here.