连接到 Azure 服务、gRPC、OpenAPI 等

开发人员正在构建带有越来越多服务的应用,而服务技术也在快速发展。

借助 Visual Studio 连接服务,可以获得一种新式服务消耗体验,使每个服务能够定制其消耗体验,从而提示你快速开始相关的问题。

连接服务包含 Visual Studio 中的一个工具集合,可帮助你将应用程序连接到以下项:

  • Azure 服务
  • OpenAPI 终结点
  • gRPC(远程过程调用)终结点
  • Windows Communication Foundation (WCF) 终结点
  • 数据库和数据提供程序

首先,右键单击解决方案资源管理器中的连接的服务节点,然后选择管理连接的服务

首先,右键单击项目节点,然后选择“添加 > 连接的服务”。 还可以右键单击解决方案资源管理器中的连接的服务节点,然后选择要添加的特定服务。

支持的项目类型因服务类型而异。 你将在列出的选择中看到适用于你的项目类型的选项。

许多 Visual Studio 订阅都包含 Azure 个人开发/测试额度。 如果你是 Visual Studio 订阅者,则可以使用这些额度来免费试用各种 Azure 服务。 如果不是订阅者,并且没有 Azure 订阅,则可以创建免费帐户

将应用连接到 Azure 服务

使用连接的服务将应用程序连接到实时 Azure 服务仿真器和 Azure 服务的其他本地替代项。 Visual Studio 当前支持以下项:

名称 说明
Azure 应用配置 在 Azure 中集中管理的访问键值设置和功能标志。
Azure App Insights 为实时 Web 应用提供可扩展应用程序性能管理和监视。
Azure 应用服务 为实时 Web 应用提供全方位、可缩放的托管服务。
Azure Functions 为 Web API 等其他内容提供可缩放的按需计算服务。
Azure 存储 支持 Blob、表、队列和磁盘的可缩放的云存储空间。
Azure SignalR 服务 基于 HTTP 的实时 Web 功能。
Azure Key Vault Azure 应用程序使用的加密密钥和其他机密的安全云存储空间。
Azure SQL 数据库 云托管 SQL 数据库。
用于 Redis 的 Azure 缓存 基于 Redis 软件的内存中数据存储。
Azure Cosmos DB 一种完全托管的 NoSQL 数据库,用于新式应用开发。
Microsoft 标识平台 使用 Microsoft 标识和社交帐户进行身份验证。

注意

使用“发布”,可将应用程序部署到 Azure 托管服务,例如 Azure VM、Azure 应用服务、Azure Functions 和 Azure 容器注册表

数据库和数据提供程序

Visual Studio 提供了用于连接到本地数据库、本地仿真版数据提供程序以及 Azure 数据库服务的选项。

名称 说明
容器上的 Azure Cosmos DB 仿真器 在本地容器中运行的 Azure Cosmos DB 仿真器。
容器上的 MongoDB MongoDB 文档数据库提供高可靠性和易伸缩性。 通过此选项可在本地容器中使用它。
容器上的 PostgreSQL PostgreSQL 是一种对象关系数据库系统,可提供可靠性和数据完整性。 通过此选项可在本地容器中使用它。
SQLite SQLite 是一个进程内库,它可提供无需进行配置的自包含、事务性 SQL 数据库引擎。
SQL Server 数据库 本地 SQL Server Database。

支持 Azure 仿真器和本地替代项

Visual Studio 通过简化从本地仿真的服务到云中运行的服务的转换,使得在本地开发 Azure 应用程序变得更加容易。 可使用连接的服务将应用程序连接到本地仿真器(其中一些仿真器在本地容器中运行)和 Azure 服务的其他本地替代项。 Visual Studio 当前支持以下项:

Visual Studio 会生成任何必要的客户端或服务器代码来简化通信。

名称 说明
容器上的 Azure Cosmos DB 仿真器 在本地容器中运行的 Azure Cosmos DB 仿真器。
Azure 存储仿真程序 Azurite 是在本地计算机上运行的 Azure 存储仿真器。
Application Insights SDK Application Insights 服务的本地模式。
容器上的 RabbitMQ RabbitMQ 是一个开源多协议消息代理。 通过此选项可在本地容器中使用它。
容器上的 Azure Cache for Redis 本地容器中托管的 Azure Cache for Redis。
Secrets.json Key Vault 的本地替代项。
SQL Server Express LocalDB Azure SQL 数据库的本地替代项。

将应用连接到 gRPC、OpenAPI 和 WCF 终结点

使用连接的服务将应用程序连接到以下任一服务:

名称 ASP.NET 链接 说明
OpenAPI 终结点 ASP.NET Core API 应用中的 OpenAPI 支持 一种标准格式,用于以计算机可读和人类可读的形式描述服务的功能。
gRPC 终结点 .NET 上的 gRPC 服务简介 一种开源实时过程调用服务。
WCF 终结点 空值 一种 .NET Framework 解决方案,支持使用分布式服务网络进行编程。

容器

连接的服务可帮助你运行在容器中本地仿真 Azure 服务的应用程序依赖项。 例如,可在容器中本地运行名为 Azurite 的 Azure 存储仿真器。 下一部分介绍在容器中使用这些模拟服务时,Visual Studio 为将应用从开发模式转换到使用 Azure 中运行的实际服务提供的支持。

本地和连接的配置

在开发过程中,通常使用本地仿真器、本地数据库或在本地容器中运行的模拟服务。 在 Visual Studio 中使用发布过程部署到云时,无论是 Azure、Docker Hub 还是其他受支持的远程环境,Visual Studio 都可以指导你完成连接到实际服务和数据库的转换过程。 右键单击“解决方案资源管理器”中的项目节点并选择“发布”时,系统会引导你完成将应用部署到云的过程,但在此之后,你之前为本地使用而配置的服务依赖项现在会在“连接的服务”UI 中显示一个黄色的警告图标和一个“配置”链接:

显示“连接的服务”选项卡中的“配置”选项的屏幕截图。

如果单击这些链接,Visual Studio 将显示几个屏幕,要求提供云中运行的“实际”服务的连接信息,你的云应用将使用该服务,而不是本地服务。 例如,如果最初将某个应用配置为使用本地运行的 SQL LocalDB 实例运行,则需提供连接字符串名称和引用该 LocalDB 数据库的初始值。 首次将应用部署到云环境后,可以使用配置链接来指定要在云中使用的连接字符串。 对于 Azure 部署方案,Visual Studio 还提供了使用 Azure Key Vault 安全地存储连接字符串和其他机密的选项。

屏幕截图显示了用实际数据库连接替换 SQL LocalDB 服务的选项。

工作原理

Visual Studio 在解决方案资源管理器中的“属性”下创建了两个名为 serviceDependencies.jsonserviceDependencies.local.json 的可见新文件。 这两个文件都可安全地签入,因为它们不包含任何机密。

Visual Studio 还会创建一个名为 serviceDependencies.local.json.user 的文件,它默认在解决方案资源管理器中不可见。 此文件包含可能被视为机密的信息(例如 Azure 中的资源 ID),我们建议你不要签入它。