.NET Aspire 集成是一套精选的 NuGet 包,用于促进云原生应用程序与突出服务和平台(如 Redis 和 PostgreSQL)的集成。 每个集成都通过自动预配或标准化配置模式提供基本的云原生功能。
提示
始终努力使用最新版本的 .NET.NET Aspire 集成来利用最新功能、改进和安全更新。
集成职责
大多数 .NET.NET Aspire 集成由两个单独的库组成,每个库各自承担不同的职责。 一种类型表示 AppHost 项目中的资源,称为 托管集成。 其他类型的集成表示连接到通过托管集成建模的资源的客户端库,它们称为 客户端集成。
托管服务集成
托管集成通过预配资源(如容器或云资源)或指向现有实例(例如本地 SQL Server)来配置应用程序。 这些包为各种服务、平台或功能建模,包括缓存、数据库、日志记录、存储和消息传送系统。
托管集成扩展 IDistributedApplicationBuilder 了接口,使 AppHost 项目能够在其 应用模型中表达资源。 托管集成适用于任何类型的应用程序,而不仅仅是 .NET 应用程序。 它们提供基础结构,并将配置详细信息(例如连接字符串、终结点和凭据)作为环境变量注入到引用它们的任何项目、可执行文件或容器中。
官方 托管集成 NuGet 包 带有 aspire
、integration
和 hosting
标记。 除了官方托管集成之外,社区还创建了作为社区工具包一部分的各种服务和平台的托管集成。
有关创建自定义 托管集成的信息,请参阅 创建自定义 .NET.NET Aspire 托管集成。
Client 整合
Client 集成将客户端库连接到 依赖项注入(DI)、定义配置架构,以及添加 运行状况检查、复原,以及 遥测(如果适用)。
.NET
.NET Aspire 客户端集成库的前缀为 Aspire.
,然后包括它们与之集成的完整包名称,例如 Aspire.StackExchange.Redis
。
这些包将现有客户端库配置为连接到托管集成。 它们扩展了 IHostApplicationBuilder 接口,允许客户端使用的项目(如 Web 应用或 API)使用连接的资源。 官方 客户端集成的 NuGet 包 已用 aspire
、integration
和 client
标签标识。 除了官方客户端集成之外,社区还创建了客户端集成, 作为社区工具包的一部分,用于各种服务和平台。
重要
.NET
.NET Aspire集成需要IHostApplicationBuilder且与仅提供访问权限的实现HostingStartup
IWebHostBuilder。 如果您使用 HostingStartup
进行模块化配置,请参阅 HostingStartup 不支持与 .NET.NET Aspire 集成的迁移指南 。
有关创建自定义客户端集成的详细信息,请参阅 创建自定义 .NET.NET Aspire 客户端集成。
托管与客户端集成之间的关系
托管和客户端集成在一起使用效果最好,但它们并不耦合,可以单独使用。 某些托管集成没有相应的客户端集成。 配置使托管集成可与客户端集成配合使用。
Client 集成是 .NET 特定的 ,提供便捷、合理的方式来配置 .NET 应用程序。 但是,可以在没有客户端集成的情况下使用托管集成,例如针对非.NET应用程序,或者当您更倾向于手动配置连接时。 在这些方案中,托管集成仍提供基础结构,并通过任何应用程序技术都可以使用的环境变量公开连接信息。
请考虑下图,描述托管与客户端集成之间的关系:
AppHost 项目用于托管集成。 配置(特别是环境变量)注入到项目、可执行文件和容器中,从而允许客户端集成连接到托管集成。
集成功能
将客户端集成添加到 .NET.NET Aspire 解决方案中的项目时,服务默认值 会自动应用于该项目;这意味着引用服务默认值项目,并调用 AddServiceDefaults
扩展方法。 这些默认值设计为在大多数方案中都能很好地工作,并且可以根据需要进行自定义。 应用以下服务默认值:
可观测性和遥测:自动设置日志记录、跟踪和指标配置:
运行状况检查:开放 HTTP 端点以提供关于应用程序的基本可用性和状态信息。 运行状况检查用于影响容器业务流程协调程序、负载均衡器、API 网关和其他管理服务做出的决策。
复原能力:系统对故障做出反应的能力,但仍保持正常运行。 复原能力超出了阻止故障的范围,包括恢复和重新构造云原生环境回到正常状态。
版本控制注意事项
托管和客户端的集成会在每次发布时更新,以匹配依赖资源的最新稳定版本。 使用新的映像版本更新容器映像时,托管集成会更新到这些新版本。 同样,当新的 NuGet 版本可用于依赖客户端库时,相应的客户端集成会更新到新版本。 这可确保应用程序可以使用最新的功能和安全更新。 .NET .NET Aspire 更新类型(主要、次要、修补程序)不一定指示依赖资源中的更新类型。 例如,如有必要,依赖资源的新主要版本可能会在 .NET.NET Aspire 补丁版本中更新。
在依赖资源中发生重大中断性变更时,集成可能会暂时拆分为基于版本的包,以简化跨中断性变更的更新。 有关详细信息,请参阅 此类中断性变更的第一个示例。
正式集成
.NET .NET Aspire 提供了许多集成来帮助构建云原生应用程序。 这些集成旨在与 .NET.NET Aspire AppHost 和客户端库无缝配合工作。 以下部分详细介绍了与云无关、特定于 Azure 的集成,以及与 Amazon Web Services(AWS)和社区工具包的集成。
与云无关的集成
以下部分详细介绍了与云无关的 .NET.NET Aspire 集成及其各自的文档和 NuGet 包的链接,并简要介绍了每个集成。
关于在 .NET Aspire中使用 Visual Studio 集成的更多信息,请参阅 Visual Studio 工具。
Azure 整合
Azure 集成将应用程序配置为使用 Azure 资源。 这些托管集成在 Aspire.Hosting.Azure.*
NuGet 包中可用,而其客户端集成在 Aspire.*
NuGet 包中可用:
Amazon Web Services (AWS) 托管集成
集成指南和 NuGet 包 | 描述 |
---|---|
-
详细了解:📄 AWS 托管 - 托管:📦Aspire。托管.AWS - Client:N/A |
一个用于建模 AWS 资源的库。 |
有关详细信息,请参阅GitHub:AspireHosting.AWS 库。
社区工具包集成
注意
社区工具包集成由 .NET.NET Aspire 社区驱动和维护。 .NET .NET Aspire 团队未正式支持这些集成。
有关详细信息,请参阅 .NET.NET Aspire Community Toolkit。