连接到 Azure 服务、gRPC、OpenAPI 等

开发人员正在构建具有越来越多的服务的应用,但服务技术的发展速度同样快。

借助 Visual Studio Connected Services,可以体验现代服务使用,每个服务皆能定制其使用体验,并提示你所需的相关问题以便快速入门。

连接服务包括 Visual Studio 中的工具集合,可帮助你将应用程序连接到以下内容:

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

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

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

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

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

将应用连接到 Azure 服务

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

名字 描述
Azure 应用配置 访问在 Azure 中集中管理的键值设置和功能标志。
Azure 应用见解 为实时 Web 应用提供可扩展的应用程序性能管理和监视。
Azure 应用服务 为实时 Web 应用提供全方位、可缩放的托管服务。
Azure Functions 为 Web API 等提供可缩放的按需计算服务。
Azure 存储 支持 Blob、表、队列和磁盘的可缩放的云存储空间。
Azure SignalR 服务 通过 HTTP 的实时 Web 功能。
Azure Key Vault(Azure 密钥保管库) 为 Azure 应用程序使用的加密密钥和其他机密提供安全的云存储。
Azure SQL 数据库 云托管的 SQL 数据库。
Azure Cache for Redis 基于 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 Server 数据库引擎。
SQL Server 数据库 本地 SQL Server 数据库。

支持 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 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 终结点 N/A 一种 .NET Framework 解决方案,支持使用分布式服务网络进行编程。

器皿

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

本地和连接的配置

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

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

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

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

工作原理

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

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