问题标签 [azure-cosmosdb-emulator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
401 浏览

azure-cosmosdb - Unbale 在 Cosmos DB 模拟器中创建容器

我正在运行CosmosDB Emulator并尝试从中添加新容器,Explorer但在添加了所有详细信息后,我遇到了错误

请看下图——

在此处输入图像描述

有人可以指导我在这里做错了什么以及如何在 Azure Cosmos DB Emulator 中创建新的容器和数据库

0 投票
1 回答
429 浏览

powershell - 如何从 powershell 脚本本地设置 cosmosdb 模拟器

我正在对我的 cosmos db 进行一些测试,我想使用 Cosmos Db 模拟器在本地使用脚本进行设置。我想使用 PowerShell 脚本在 cosmos db 模拟器中使用 PowerShell 创建 Db、容器、填充测试数据,但我在网上找不到任何文档。有人可以指导我或帮助我这样做。到目前为止,我一直遵循这个文档,它允许我使用 PowerShell 启动 CosmosDb 模拟器

0 投票
1 回答
95 浏览

unit-testing - 如何在单元测试用例中从 Cosmos Db 模拟器中读取数据

我正在编写单元测试用例,并想从 Cosmos Db 模拟器中读取数据。我已经做到了这一点,现在需要帮助才能从 Emulator 读取数据。如何从容器中读取数据,假设我有 Id = "Test" 的数据

0 投票
0 回答
39 浏览

c# - 从我的 xUnit 测试用例中调用类对象

在下面的代码中做什么databaseCreationResult和做什么。collectionCreationResult我正在编写单元测试用例,想知道如何在我的 Facts 中访问这两个对象。这里的数据库是 Cosmos DB 模拟器。如果有人可以通过在 Facts 中给出一个简单的例子来告诉我如何修改我的数据库。我已经到了这里

0 投票
0 回答
121 浏览

azure-cosmosdb - Cosmos 模拟器中未显示的文档

我正在使用 Cosmos Emulator (v. 2.11.13.0) 在本地开发。我的程序在模拟器上运行良好,但存储的文档没有显示在文档资源管理器中:

在此处输入图像描述

我可以使用 Microsoft Azure Storage Explorer (v. 1.16.0) 很好地查看文档:

在此处输入图像描述

存储资源管理器中的 Cosmos DB 帐户资源管理器已弃用 - 这也是我害怕将其更新到较新版本的原因。

我可以通过Azure Cosmos DB 模拟器资源管理器创建新文档并保存它们。然后它们出现在 UI 中:

在此处输入图像描述

但是当我单击更新图标时,它们会立即从列表中消失(尽管信息在详细信息面板中仍然可见):

在此处输入图像描述

在 Storage Explorer 中查看时,该文档仍然存在。

我尝试过尽可能干净的安装并使用多个不同的版本:

  • 我已经通过“应用程序和功能”卸载了该程序
  • 我已经删除了所有文件
    • %LOCALAPPDATA%/CosmosDBEmulator
    • %PROGRAMFILES%/Azure Cosmos DB 模拟器
  • 我试过版本:
    • 2.11.13
    • 2.9.0
    • 2.7.2
0 投票
0 回答
451 浏览

azure-cosmosdb - 每次系统重启时在 Mac 上设置 Cosmos-DB 模拟器

我跟着这个视频在 Mac OS 中运行新的 Cosmos DB 模拟器: https ://www.youtube.com/watch?v=NUfK6n8UXi8

后续步骤:

  1. 访问 Docker Hub 并安装 Docker Desktop for macOS
  2. 检索本地计算机的 IP 地址。当使用 Cosmos DB SDK(.NET、Java)配置直接模式设置时,需要执行此步骤。
  1. 从注册表中拉取 Docker 映像。
  1. 使用以下配置运行 Docker 映像:
  1. 模拟器运行后,使用不同的终端,将本地机器的 IP 地址加载到变量中。
  1. 接下来,下载模拟器的证书。
  1. 打开KeyChain Access应用程序。单击“文件”->“导入项目”->“emulatorcert.crt”,即最近从先前命令下载的证书->单击“打开”。

  2. 将加载“localhost”证书。单击证书,将打开一个弹出窗口。在“使用此证书时”选择“始终信任”并关闭弹出窗口。

  3. 打开 htpps://localhost:8081/_explorer/index.html,这应该会打开模拟器。

早些时候,对我来说,第 9 步,localhost:8081 继续加载,没有响应或错误。我再次按照上述步骤操作,这次它对我有用。

目前我面临的问题是,每次重新启动笔记本电脑时,我都必须再次执行上述所有步骤,例如下载最新图像和设置证书。在运行 docker 映像时,我将“ AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE ”标志保持为真,因此我希望保留状态。所遵循的步骤是否存在一些错误,因为每次设置都是一个困难的过程。

0 投票
1 回答
448 浏览

linux - 适用于 Linux Docker 的 Cosmos DB 模拟器 “这是一个评估版。评估期还剩 [164] 天”

我正在为 Linux Docker 映像运行 Cosmos DB 模拟器。

当容器开始运行时,我注意到以下消息“这是一个评估版本。评估期还剩 [164] 天”这是否意味着 164 天后 Cosmos DB 模拟器将停止工作?可以做些什么来延长期限或用未过期的图像替换评估版?我找不到有关此的任何信息

还有一个问题:如何将完整的 Cosmos DB 数据库从 Azure 迁移到 Cosmos DB Emulator Linux,并在本地 macOS 上的 docker 中运行?我看到有在 Window 上运行的数据迁移工具,但是是否有适用于 Linux/macOS 的数据迁移工具,或者是否有另一种方法可以将 CosmosDB 从 Azure 复制到模拟器?Azure 上是否有可以做到这一点的服务?可以在 macOS 上构建数据迁移工具吗?如果是,是否有关于如何做到这一点的文档?

还有一种方法可以将命令发送到在 docker 中运行的适用于 Linux 的 Cosmos DB 模拟器(类似于在 Windows 上可以完成的操作https://docs.microsoft.com/en-us/azure/cosmos-db/emulator-command -线参数)。如果我可以使用GetStatus检查 Cosmos DB Emulator 是否真正启动,那就太好了。

0 投票
1 回答
352 浏览

c# - 在 Azure Devops 管道中使用 Cosmos Db 进行单元测试失败

我编写了单元测试用例,其中我的测试用例针对 Cosmos Db 模拟器编写。(不知道模拟器是什么的,是微软提供的本地开发cosmos Db,一般用来测试你的查询)

在我的单元测试用例中,我正在实例化 Emulator 数据库,然后运行测试用例。当我将此更改推送到我的 Azure devops 管道时会出现问题。那里的测试用例失败,错误为

目标机器主动拒绝连接。

这确实意味着它无法实例化 db。我怎样才能解决这个问题。任何想法??

这是测试的初始代码

0 投票
0 回答
195 浏览

azure-devops - Azure Devops yaml 管道中 Azure cosmos Db 模拟器的任务失败

我正在尝试使用 Azure Cosmos Db 模拟器测试我的单元测试用例。当我运行任务时,管道给了我错误,因为目标机器主动拒绝并且所有应该测试的查询都针对我的实际生产数据库运行。可能错误是管道无法连接到我的模拟器数据库。为了解决这个问题,我从任务列表中添加了 Azure Cosmos Db Emulator 任务(公共预览版),并在我的 YAMl 管道中添加了以下两个任务。我在任务运行 Azure Cosmos Db 模拟器的管道中收到以下错误:

来自守护进程的错误响应:未能在网络 nat 上创建端点 azure-cosmosdb-emulator:在 hnsCallRawResponse 期间失败:在 Win32 中 hnsCall 失败:该进程无法访问该文件,因为它正被另一个进程使用。(0x20) 错误:无法启动容器:11429cb294f98fe04cac2fbc8ff026063ee51d2dff4ece1bbeff33c778cdd4da

下面是我的 Yaml 脚本:

我在做什么错?如果有人可以解释。如果我不使用 Powershell 任务,则会收到以下错误:

来自守护进程的错误响应:hcsshim::CreateComputeSystem 120a874376d885ffea38a4e299f613340a599eae8a01b691366f21dcb6707501:容器操作系统与主机操作系统不匹配。

0 投票
0 回答
146 浏览

java - 唯一索引和复合索引不支持嵌套路径

我有一个使用 spring-data mongo API 从 Cosmos Db 获取数据的 spring 应用程序。使用 mongo 模板运行特定的查找聚合时,我遇到了以下InvalidDataAccessApiUsageException异常:

据我了解,每个Azure 文档 CommandNotSupported是 Cosmos Mongo API 不完全支持的功能。但是,此错误仅在第一次执行查找聚合时发生,所有后续执行都按预期工作,没有错误。每次我们重新启动应用程序时,此问题都会重复出现。

这是重新创建此异常的伪代码设置。考虑 2 类模型“产品”和“配件”我想使用查找聚合合并到商品类中:

我已经测试过:

  • CosmosDb 模拟器(api v3.6)-> 相同的行为,错误 115
  • Azure 上的 CosmosDb (api v3.6) -> 行为相同,错误 115
  • MongoDb v3.6 docker 容器 -> 好的,没有错误

作为一种解决方法,我创建了没有要扩展的 mongo 特定注释的基本模型类。这可以按预期工作,没有问题:

我的问题是,如果发出的错误指定该命令不受支持,为什么此查找聚合第一次不起作用,但随后所有时间都起作用?或者这是与如何设置索引有关的问题?