使用 Visual Studio 连接服务将 Azure Cosmos DB 添加到你的应用

在 Visual Studio 中,通过使用连接服务功能可将以下任何服务连接到 Azure Cosmos DB:

  • .NET Framework 控制台应用
  • ASP.NET 模型-视图-控制器 (MVC) (.NET Framework)
  • ASP.NET Core
  • .NET Core(包括控制台应用、WPF、Windows 窗体、类库)
  • .NET Core 辅助角色
  • Azure Functions
  • 通用 Windows 平台应用
  • Xamarin
  • Cordova

连接服务功能可将所有需要的引用和连接代码添加到项目,并相应地修改配置文件。

注意

本主题适用于 Visual Studio Windows 版。 有关 Visual Studio for Mac,请参阅 Visual Studio for Mac 中连接服务

先决条件

使用连接服务连接到 Azure Cosmos DB

  1. 在 Visual Studio 中打开项目。

  2. 解决方案资源管理器中,右键单击连接服务节点,并在上下文菜单中选择添加连接服务

  3. 连接服务选项卡中,选择服务依赖项的 + 图标。

    Screenshot showing how to add a service dependency.

  4. 添加依赖项页中,选择 Azure Cosmos DB

    Screenshot showing

    如果还没有登录,请登录到 Azure 帐户。 如果没有 Azure 帐户,可以注册免费试用版

  5. Azure Cosmos DB 屏幕中,选择现有的 Azure Cosmos DB,然后选择下一步

    如果需要创建数据库,请转到下一步。 否则,请跳到步骤 7。

    Screenshot showing how to add an existing Azure Cosmos DB to project.

  6. 创建 Azure Cosmos DB:

    1. 选择屏幕底部的新建 Azure Cosmos DB

    2. 填写Azure Cosmos DB: 新建屏幕,然后选择创建

      Screenshot showing

    3. 当显示配置 Azure Cosmos DB 屏幕时,新数据库将出现在列表中。 在列表中选择新数据库,并选择下一步

  7. 输入连接字符串名称,然后选择是要将连接字符串存储在本地机密文件中还是存储在 Azure Key Vault 中。

    Screenshot showing

  8. 更改摘要屏幕显示了在完成该过程后将对项目进行的所有修改。 如果更改看起来正常,请选择完成

    Screenshot showing

  9. 连接显示在连接服务选项卡的服务依赖项部分下。

    Screenshot showing

注意

对于 .NET Framework 项目,连接的服务 UI 略有不同。 若要查看差异,请与此页面的 Visual Studio 2019 版本进行比较。

  1. 在 Visual Studio 中打开项目。

  2. 解决方案资源管理器中,右键单击连接的服务节点,并在上下文菜单中选择添加,打开可用服务的菜单。

    Screenshot showing Connected Services context menu options.

  3. 选择 Azure Cosmos DB。 随即显示连接到依赖项页。 应看到两个选项,一个用于本地模拟器,即容器上的 Azure Cosmos DB 模拟器(本地),另一个用于连接到实时 Azure Cosmos DB 服务。 可以从本地模拟器开始降低成本并简化早期开发。 稍后可以通过重复执行这些步骤并选择另一个选项来迁移到实时服务。

    Screenshot showing Azure Cosmos DB choices.

    如果选择使用 Azure Cosmos DB 模拟器,请单击下一步以查看更改摘要屏幕,其中显示了如何修改项目。 NuGet 包引用和本地模拟器的连接代码被添加到项目中。 在最后一个屏幕上单击“完成”后,将创建模拟器的容器;你将在输出窗口中看到映像下载状态

    如果要连接到 Azure 服务,请继续执行下一步;如果尚未登录,请先登录到 Azure 帐户,然后再继续。 如果没有 Azure 帐户,可以注册免费试用版

  4. Azure Cosmos DB 屏幕中,选择现有的 Azure Cosmos DB,然后选择下一步

    如果需要创建数据库,请转到下一步。 否则,请跳到步骤 7。

    Screenshot showing

  5. 创建 Azure Cosmos DB:

    1. 选择屏幕底部的新建 Azure Cosmos DB

    2. 填写 Azure Cosmos DB: 新建屏幕,然后选择创建

      Screenshot showing

    3. 当显示配置 Azure Cosmos DB 屏幕时,新数据库将出现在列表中。 在列表中选择新数据库,并选择下一步

  6. 输入连接字符串名称,然后选择是要将连接字符串存储在本地机密文件中还是存储在 Azure Key Vault 中。

    Screenshot showing

    连接字符串将添加为机密,并在应用配置中提供。 在 ASP.NET Core 应用中,可以使用 WebApplicationBuild 对象上的 Configuration 属性访问此连接字符串。

  7. 更改摘要屏幕显示了在完成该过程后将对项目进行的所有修改。 如果更改看起来正常,请选择完成

    Screenshot showing

  8. 在“解决方案资源管理器”中,双击连接的服务节点以打开连接的服务选项卡。连接显示在服务依赖项部分下:

    Screenshot showing

    如果单击添加的依赖项旁边的三个点,可以看到各种选项(例如连接)以重新打开向导并更改连接。 还可以单击窗口右上角的三个点,查看用于启动本地依赖项、更改设置等的选项。

  9. 默认情况下,容器中的内存限制设置为 2G,但通常情况下,运行 Azure Cosmos DB 需要更多内存。 要解决这个问题,请导航到解决方案文件夹下的 .vs/sd/<GUID>/local 文件夹。 在 Windows 资源管理器中,可能需要启用隐藏文件才能看到 .vs 文件夹。 查找并打开文件 cosmosdb1.docker-compose.yml。 设置 4G 或更高的内存限制。

    mem_limit = 4G
    

    要使用新设置重新启动容器,请在“已连接服务”选项卡的“服务依赖项”部分单击三个点,然后选择“启动本地依赖项”。

注意

Azure Cosmos DB 的本地模拟器可能会引用使用 Azure Cosmos DB 临时许可证的基础映像。 如果容器未启动,请检查 Azure Cosmos DB 容器的对应容器*窗口中的日志选项卡。 如果提到 PAL 过期问题,则需要为本地容器获取最新的基础映像。 在控制台提示符下运行以下命令:docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest。 许可证会定期更新,过期后刷新到最新的容器应该可以解决问题。 可在 Azure Cosmos DB 模拟器 GitHub 存储库中查看和报告 Azure Cosmos DB 模拟器的问题。

后续步骤

了解如何按照在 ASP.NET Core 开发环境中安全存储应用机密安全存储机密。 具体而言,若要从机密存储中读取连接字符串,可以添加代码,如通过配置 API 读取机密中所示。 代码可能如下所示,其中 builderWebApplicationBuild 的实例,后者显示在 ASP.NET Core 项目模板中的 Program.cs 中

// New instance of CosmosClient class using a connection string
using CosmosClient client = new(
    connectionString: builder.Configuration["CosmosDBConnectionString"]
);

CosmosClient 通过它的各种方法提供对 Azure Cosmos DB 功能的访问。 获得 CosmosClient 的实例后,就可按照以下指南创建 NoSQL 数据库:使用 .NET 在 Azure Cosmos DB for NoSQL 中创建数据库