使用 Visual Studio 连接服务将 Azure Cosmos DB 添加到应用
使用 Visual Studio,可以使用 Connected Services 功能将以下任一项连接到 Azure Cosmos DB:
- .NET Framework 控制台应用
- ASP.NET 模型View-Controller (MVC) (.NET Framework)
- ASP.NET Core
- .NET Core(包括控制台应用、WPF、Windows 窗体、类库)
- .NET Core 辅助角色
- Azure Functions
- 通用 Windows 平台应用
- Xamarin
- 科尔多瓦
连接的服务功能将所需的所有引用和连接代码添加到项目,并相应地修改配置文件。
先决条件
- 安装有 Azure 工作负载的 Visual Studio。
- 受支持类型之一的项目
- Azure 帐户。 如果没有 Azure 帐户,请激活你的 Visual Studio 订阅者 Azure 权益或注册免费试用版。
使用连接服务连接到 Azure Cosmos DB
在 Visual Studio 中打开项目。
在 解决方案资源管理器中,右键单击 连接服务 节点,然后在上下文菜单中选择“添加连接服务”。
如果未看到 连接服务 节点,请选择 项目>连接服务>添加。
在 连接服务 选项卡中,选择 服务依赖项的 +图标。
在 添加依赖项 页中,选择 Azure Cosmos DB。
如果尚未登录,请登录到 Azure 帐户。 如果没有 Azure 帐户,可以注册 免费试用版。
在 Azure Cosmos DB 界面中,选择现有的 Azure Cosmos DB,然后选择“下一步”。
如果需要创建数据库,请转到下一步。 否则,请跳到步骤 7。
创建 Azure Cosmos DB:
选择 在屏幕底部创建新的 Azure Cosmos DB。
填写“Azure Cosmos DB: 新建”屏幕,然后选择“创建”。
显示 配置 Azure Cosmos DB 对话框时,新数据库将显示在列表中。 在列表中选择新数据库,然后选择“下一步”。
输入连接字符串名称,并选择是要将连接字符串存储在本地机密文件中,还是 Azure Key Vault中。
“更改摘要”屏幕显示了在完成该过程后将对项目进行的所有修改。 如果更改看起来正常,请选择“完成”。
连接显示在“连接服务”选项卡的“服务依赖项”部分下。
说明
对于 .NET Framework 项目,连接服务 UI 略有不同。 若要查看差异,请与本页的 Visual Studio 2019 版本进行比较。
在 Visual Studio 中打开项目。
在 解决方案资源管理器中,右键单击 连接服务 节点,并从上下文菜单中选择 “添加”以打开可用服务的菜单。
如果未看到 连接服务 节点,请选择 项目>连接服务>,再点击 添加。
选择“Azure Cosmos DB”。 随即显示“连接到依赖项”页。 应看到两个选项,一个用于本地模拟器,即容器上的 Azure Cosmos DB 模拟器(本地),另一个用于连接到实时 Azure Cosmos DB 服务。 从本地模拟器开始,可以降低成本并简化早期开发。 稍后可以通过重复这些步骤并选择另一个选项,迁移到实时服务。
如果选择使用 Azure Cosmos DB 模拟器,请单击 “下一步” 以查看 更改摘要 屏幕,其中显示了项目的修改方式。 NuGet 包引用将添加到项目,本地模拟器的连接代码将添加到项目中。 在最后一个屏幕上单击 完成 后,将创建模拟器的容器;你将在输出窗口中看到映像下载状态。
如果要连接到 Azure 服务,请继续执行下一步,或者尚未登录,请在继续之前登录到 Azure 帐户。 如果没有 Azure 帐户,可以注册 免费试用版。
在 Azure Cosmos DB 界面中,选择现有的 Azure Cosmos DB,然后选择 “下一步”。
如果需要创建数据库,请转到下一步。 否则,请跳到步骤 7。
创建 Azure Cosmos DB:
选择 在屏幕底部创建新的 Azure Cosmos DB。
填写“Azure Cosmos DB: 新建”屏幕,然后选择“创建”。
显示 配置 Azure Cosmos DB 对话框时,新数据库将显示在列表中。 在列表中选择新数据库,然后选择“下一步”。
输入连接字符串名称,并选择是要将连接字符串存储在本地机密文件中,还是 Azure Key Vault中。
连接字符串将添加为机密,并在应用配置中提供。 在 ASP.NET Core 应用中,可以使用
WebApplicationBuild
对象的Configuration
属性访问此连接字符串。“更改摘要”屏幕显示了在完成该过程后将对项目进行的所有修改。 如果更改看起来正常,请选择“完成”。
在解决方案资源管理器中,双击 连接服务 节点,打开 连接服务 选项卡。连接显示在 服务依赖项 部分下:
如果单击添加的依赖项旁边的三个点,可以看到各种选项,例如 连接 重新打开向导并更改连接。 还可以单击窗口右上角的三个点,查看用于启动本地依赖项、更改设置等的选项。
默认情况下,容器中的内存限制设置为 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 读取机密中所示。 代码可能如下所示,其中 builder
是 ASP.NET 核心项目模板 Program.cs 中显示的 WebApplicationBuild
实例:
// 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 中创建数据库。