DocumentDB仿真器远程连接

时间:2017-03-29 09:35:35

标签: azure-cosmosdb

我们有办法从远程系统连接文档dB模拟器吗?

我们可以在文档db emulator中创建过程,触发器,用户定义的函数等吗?

3 个答案:

答案 0 :(得分:0)

模拟器适用于本地开发方案,因为它运行公开本地端口,您可能(从未尝试过,这纯粹是理论上的)围绕防火墙工作并公开它,然后使用您的外部IP连接另一个系统暴露的港口。

您还必须解决local SSL certificate(这可能是最大的问题),尽管您可以尝试使用TCP连接设置,但可能需要检查this thread需要哪些端口打开。

此外,模拟器没有实时服务所具有的整个功能集:

  • DocumentDB Emulator仅支持一个固定帐户和一个众所周知的主密钥。 DocumentDB模拟器中无法进行密钥重新生成。
  • DocumentDB仿真器不是可扩展的服务,不支持大量集合。​​
  • DocumentDB Emulator不会模拟不同的DocumentDB一致性级别。
  • DocumentDB Emulator不会模拟多区域复制。
  • DocumentDB仿真器不支持Azure DocumentDB服务中可用的服务配额覆盖(例如,文档大小限制,增加的分区集合存储)。
  • 由于您的DocumentDB仿真器副本可能与Azure DocumentDB服务的最新更改不一致,请使用DocumentDB容量规划器来准确估算应用程序的生产吞吐量(RU)需求。

因此,您最好通过installerChocolatey在其他系统上安装模拟器,并避免出现所有问题。

答案 1 :(得分:0)

更新:我的以下尝试解决方案无效。使用Node.js DocumentDB sdk Connection Timeout,192.168.0.101:8881。我认为因为SSL。 :/抱歉。留下"答案" 以获取有关什么不起作用的文档,以及是否有人知道如何绕过DocumentDB Emulator SSL。

我正在尝试通过本地网络连接DocumentDB Emulator。 (我开发虚拟机)

我正在尝试将端口转发到DocumentDB Emulator侦听的8081本地端口。在Command Prompt (Run as Administrator)

netsh interface portproxy add v4tov4 listenaddress=192.168.0.101 listenport=8080 connectport=8081 connectaddress=127.0.0.1

192.168.0.101是PC的网络地址。

现在我可以导航到:

https://192.168.0.101:8080/_explorer/index.html并查看数据资源管理器。乐观我可以在开启关闭SSL的情况下使用它吗?

还尝试使用node.js http-proxy无法使用自签名证书。 :(

更新,我实际上http-proxy正常工作,但只有按特定顺序启动服务器才有效...

  1. 启动api服务器
  2. 使用secure: true
  3. 启动代理服务器(在Windows框中)
  4. 连接失败
  5. 将代理服务器(在Windows框中)更改为secure: false;重新启动;
  6. 现在它正在工作......但对dev没用,因为如果在代码更改后重新启动API服务器,连接将再次失败。
  7. 要在Windows上运行的Node.js代理示例:

    ```

    var fs = require('fs'),
        httpProxy = require('http-proxy');
    
    //
    // Create the proxy server listening on port 443
    //
    httpProxy.createServer({
      ssl: {
        key: fs.readFileSync('valid-ssl-key.pem', 'utf8'),
        cert: fs.readFileSync('valid-ssl-cert.pem', 'utf8')
      },
      target: 'https://localhost:8081',
      secure: true // Depends on your needs, could be false.
    }).listen(8881);
    

    ```

答案 2 :(得分:0)

您只需要使用其他参数启动documentdb:

start "" "c:\Program Files\Azure Cosmos DB Emulator\CosmosDB.Emulator.exe" /AllowNetworkAccess /NoFirewall /Key=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw== 检查documentdb docker文件以获取更多详细信息:https://github.com/Azure/azure-cosmos-db-emulator-docker/blob/master/package_scripts/startemu.cmd