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