连接到 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 安全地存储连接字符串和其他机密的选项。
工作原理
Visual Studio 在解决方案资源管理器中的“属性”下创建了两个名为 serviceDependencies.json 和 serviceDependencies.local.json 的可见新文件。 这两个文件都可安全地签入,因为它们不包含任何机密。
Visual Studio 还会创建一个名为 serviceDependencies.local.json.user 的文件,它默认在解决方案资源管理器中不可见。 此文件包含可能被视为机密的信息(例如 Azure 中的资源 ID),我们建议你不要签入它。