共用方式為


.NET .NET Aspire 整合概觀

.NET Aspire 整合是一套精選的 NuGet 套件,可協助整合雲端原生應用程式與突出服務和平臺,例如 Redis 和 PostgreSQL。 每個整合都會透過自動布建或標準化的組態模式,提供基本的雲端原生功能。

提示

一律努力使用最新版本的 .NET.NET Aspire 整合,以利用最新的功能、改進和安全性更新。

整合責任

大部分 .NET.NET Aspire 整合是由兩個不同的連結庫所組成,每個連結庫都有不同的責任。 一種類型資源存在於 應用主機 專案中,稱為 主機整合。 另一種整合類型代表 client 函式庫,這些函式庫會連接到由裝載整合建模的資源,稱為 client 整合

主機代管整合

裝載整合會藉由布建資源(例如容器或雲端資源)或指向現有的實例來設定應用程式(例如本機 SQL server)。 這些套件會建立各種服務、平臺或功能模型,包括快取、資料庫、記錄、記憶體和傳訊系統。

裝載整合會擴充 IDistributedApplicationBuilder 介面,讓 應用程式主機 專案能夠在其 應用程式模型中表示資源。 官方 主機整合 NuGet 套件 會以 aspireintegrationhosting標記。 除了官方的主機託管整合外,社群還為各種服務和平臺建立了託管整合,這是社群工具包的一部分。

如需有關創建自定義 裝載整合的詳細資訊,請參閱 創建自定義 .NET.NET Aspire 裝載整合

Client 整合

Client 整合 client 連結庫,以 相依性插入、定義組態架構,以及新增 健康情況檢查復原,以及 遙測。 .NET Aspire client 整合函式庫會以 Aspire. 為前綴,然後包含完整的整合套件名稱,例如 Aspire.StackExchange.Redis

這些套件會配置現有的 client 程式庫,以連接到主機整合。 它們會擴充 IHostApplicationBuilder 介面,讓消耗 client的專案,例如網路應用或 API,使用連線的資源。 官方 client 整合 NuGet 套件 會以 aspireintegrationclient標記。 除了官方的 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) 和 Community Toolkit 整合。

與雲端無關的整合

下一節詳細說明與各自檔與 NuGet 套件連結的雲端無關 .NET.NET Aspire 整合,並提供每個整合的簡短描述。

整合文件與 NuGet 套件 描述
- 深入瞭解📄 Apache Kafka
- 托管📦Aspire。Hosting.Kafka
- Client📦Aspire。Confluent.Kafka
用來從 Apache Kafka 訊息代理程式生成和取用訊息的程式庫。
- 深入瞭解📄 Dapr
- 託管📦Aspire。主機。Dapr
- Client:不適用
模型化 Dapr 為 .NET.NET Aspire 資源的資料庫。
- 深入瞭解📄 Elasticsearch
- 主機託管📦Aspire。主機託管。Elasticsearch
- Client📦Aspire。Elastic.Clients.Elasticsearch
用來存取 Elasticsearch 資料庫的函式庫。
- 深入瞭解📄 Keycloak
- 主機📦Aspire。主機。Keycloak
- Client📦Aspire。Keycloak。驗證
存取 Keycloak 驗證的函式庫。
- 深入瞭解📄 Milvus
- 託管📦Aspire。Hosting。Milvus
- Client📦Aspire。Milvus。Client
用來存取 Milvus 資料庫的程式庫。
- 深入瞭解📄MongoDB 驅動程式
- 主機📦Aspire。主機。MongoDB
- Client📦Aspire。MongoDB。驅動程式
用來存取 MongoDB 資料庫的庫。
- 深入瞭解📄 MySqlConnector
- 主機📦Aspire。主機。MySql
- Client📦Aspire。MySqlConnector
用於存取 MySqlConnector 資料庫的工具庫。
- 深入瞭解📄 NATS
- 主機託管📦Aspire。好客。Nats
- Client📦Aspire。NATS.Net
存取 NATS 傳訊的程式庫。
- 深入瞭解📄Oracle - EF Core
- 主辦📦Aspire。招待。Oracle
- Client📦Aspire。Oracle。EntityFrameworkCore
使用 Entity Framework Core存取 Oracle 資料庫的函式庫。
- 深入瞭解📄 Orleans
- 主辦📦Aspire。Orleans
- Client:N/A
Orleans 模型化為 .NET.NET Aspire 資源的庫。
- 深入瞭解📄 波梅洛 MySQL - EF Core
- 託管📦Aspire。託管。MySql
- Client📦Aspire。Pomelo.EntityFrameworkCore.MySql
使用 Entity Framework Core存取 MySql 資料庫的程式庫。
- 深入瞭解📄PostgreSQL - EF Core
- 主機服務📦Aspire。接待。PostgreSQL
- Client📦Aspire。Npgsql.EntityFrameworkCore.PostgreSQL
使用 Entity Framework Core存取 PostgreSQL 資料庫的函式庫。
- 深入瞭解📄 PostgreSQL
- 託管📦Aspire。PostgreSQL
- Client📦Aspire。Npgsql
用來存取 PostgreSQL 資料庫的函式庫。
- 深入瞭解📄 Qdrant
- 託管📦Aspire。Hosting.Qdrant
- Client📦Aspire。Qdrant。Client
用於存取 Qdrant 資料庫的函式庫。
- 深入瞭解📄 RabbitMQ
- Hosting📦Aspire.Hosting.RabbitMQ
- Client📦Aspire。RabbitMQ。Client
用於存取 RabbitMQ的程式庫。
- 了解更多📄Redis 分散式快取
- Hosting📦Aspire。Hosting。Redis📦Aspire。Hosting.Garnet,或 📦Aspire。Hosting.Valkey
- Client📦Aspire。StackExchange。Redis。DistributedCaching
用於存取 Redis 快取的函式庫,用於 分散式快取
- 深入瞭解📄Redis 輸出快取
- 主機📦AspireHostingRedis, 📦AspireHosting.Garnet📦AspireHosting.Valkey
- Client📦Aspire。StackExchange。Redis。OutputCaching
存取 Redis 快取的函式庫,用於 的輸出快取
- 深入瞭解📄 Redis
- 主機📦Aspire。主機。Redis📦Aspire。主機.Garnet📦Aspire。主機.Valkey
- Client📦Aspire。StackExchange。Redis
用來存取 Redis 快取的程式庫。
- 深入瞭解📄 Seq
- 主機代管📦Aspire。主機代管。Seq
- Client📦Aspire。Seq
記錄至 Seq的連結庫。
- 深入瞭解📄SQL Server - EF Core
- 託管📦Aspire。Hosting.SqlServer
- Client📦Aspire。Microsoft.EntityFrameworkCore.SqlServer
使用 存取 資料庫的函式庫。
- 深入瞭解📄 SQL Server
- 主機服務📦Aspire。Hosting.SqlServer
- Client📦Aspire。Microsoft.Data.SqlClient
用來存取 SQL Server 資料庫的程式庫。

如需在 Visual Studio中使用 .NET Aspire 整合功能的詳細資訊,請參閱 Visual Studio 工具

Azure 整合

Azure 整合會將應用程式設定為使用 Azure 資源。 這些主機整合可在 Aspire.Hosting.Azure.* NuGet 套件中使用,而它們的 client 整合可在 Aspire.* NuGet 套件中使用:

整合文件與 NuGet 套件 描述
- 深入瞭解📄Azure 應用程式組態
- Hosting📦Aspire。托管Azure。應用配置
- Client:N/A
Azure 應用程式組態互動的程式庫。
- 深入瞭解📄 Azure Application Insights
- 託管📦Aspire。託管。Azure。ApplicationInsights
- Client:不適用
Azure Application Insights互動的程式庫。
- 深入瞭解📄Azure Cosmos DB - EF Core
- 主機托管📦Aspire。Azure。CosmosDB
- Client📦Aspire。Microsoft.EntityFrameworkCore.Cosmos
使用 Entity Framework Core存取 AzureAzure Cosmos DB 資料庫的函式庫。
- 深入瞭解📄 Azure Cosmos DB
- 主機代管📦Aspire.Hosting.Azure.CosmosDB
- Client📦Aspire。Microsoft。Azure。Cosmos
用來存取 Azure Cosmos DB 資料庫的函式庫。
- 深入瞭解📄 Azure Event Hubs
- 托管📦Aspire。主機。Azure。EventHubs
- Client📦Aspire。Azure。Messaging.EventHubs
存取 Azure Event Hubs的程式庫。
- 深入瞭解📄Azure 功能
- 主機托管📦Aspire。主機托管。Azure。功能
- Client:N/A
Azure 功能整合的函式庫。
- 深入瞭解📄 Azure Key Vault
- 託管📦Aspire。託管。Azure。KeyVault
- Client📦Aspire。Azure。Security.KeyVault
用來存取 Azure Key Vault的函式庫。
- 深入瞭解📄Azure 操作見解
- 主機📦Aspire。主機。Azure。OperationalInsights
- Client:N/A
用於與 Azure 營運洞察進行互動的函式庫
- 深入瞭解📄 Azure AI OpenAI
- 主機📦Aspire。Azure。CognitiveServices
- Client📦Aspire。Azure。人工智慧。OpenAI
存取 Azure AI OpenAI 或 OpenAI 功能的程式庫。
- 深入瞭解📄 Azure PostgreSQL
- 主機📦Aspire。好客Azure。PostgreSQL
- Client:不適用
Azure Database for PostgreSQL互動的連結庫。
- 了解更多📄Azure 人工智慧搜尋
- 主機📦Aspire。主機。Azure。搜尋
- Client📦Aspire。Azure。Search.Documents
用來存取 Azure AI 搜尋功能 的程式庫。
- 深入瞭解📄 Azure Service Bus
- 主機📦Aspire。主機。Azure。ServiceBus
- Client📦Aspire。Azure。Messaging.ServiceBus
存取 Azure Service Bus的程式庫。
- 深入瞭解📄 Azure SignalR Service
- 主機託管📦Aspire。Azure。SignalR
- ClientMicrosoft。Azure。SignalR
存取 Azure SignalR Service的程式庫。
- 深入瞭解📄 Azure Blob Storage
- 主機託管📦AspireAzure。儲存
- Client📦Aspire。Azure。Storage.Blobs
存取 Azure Blob Storage的程式庫。
- 深入瞭解📄 Azure Storage Queues
- 託管📦Aspire。託管。Azure。儲存
- Client📦Aspire。Azure。Storage.Queues
用於存取 Azure Storage Queues的函式庫。
- 深入瞭解📄 Azure Table Storage
- 主機託管📦Aspire。主機託管。Azure。儲存體
- Client📦Aspire。Azure。Data.Tables
用來存取 Azure 數據表 服務的程式庫。
- 深入瞭解📄Azure Web PubSub
- 主機📦Aspire。主機。Azure。WebPubSub
- Client📦Aspire。Azure。Messaging.WebPubSub
用於存取 Azure Web PubSub 服務的程式庫。

Amazon Web Services (AWS) 主機代管服務整合

整合文件與 NuGet 套件 描述
- 深入瞭解📄 AWS 主機代管
- 託管📦Aspire.託管.AWS
- Client:不適用
用於建模 AWS 資源的程式庫

如需詳細資訊,請參閱 GitHub:Aspire。Hosting.AWS 連結庫

Community Toolkit 整合

注意

社群工具組整合是由 .NET.NET Aspire 社群所驅動和維護。 .NET .NET Aspire 小組未正式支持這些整合。

整合文件與 NuGet 套件 描述
- 深入瞭解📄Azure 靜態 Web Apps 模擬器
- Hosting📦 CommunityToolkit.Aspire.Hosting.Azure.StaticWebApps
- Client:N/A
Azure Static Web Apps 模擬器的主機整合 (請注意:此功能不支援將專案部署到 Azure Static Web Apps)。
- 深入瞭解📄 Bun 託管
- 裝載📦 CommunityToolkit。Aspire。Hosting.Bun
- Client:不適用
Bun 應用程式的託管整合。
- 深入瞭解📄Deno 主機代管
- 主機📦 CommunityToolkit。Aspire。主機托管。Deno
- Client:N/A
Deno 應用程式的主機託管整合。
- 深入瞭解📄 Go 主機代管
- Hosting📦 CommunityToolkit。Aspire。Hosting.Golang
- Client:N/A
Go 應用程式的主機托管整合。
- 深入瞭解📄 Java/Spring 主機代管
- 主機📦 CommunityToolkit。Aspire。Hosting.Java
- Client:N/A
在 .NET.NET Aspire 中,使用本地 JDK 或使用容器集成運行 Java 程式碼。
- 深入瞭解📄Node.js 主機擴充功能
- 主機📦 CommunityToolkit。Aspire。Hosting.NodeJs.Extensions
- Client:N/A
整合,其中包含執行 Node.js 應用程式的其他擴充功能
- 深入瞭解📄 Ollama
- 裝載📦 CommunityToolkit。Aspire。Hosting.Ollama
- Client📦Aspire。CommunitToolkit.OllamaSharp
Aspire 元件,利用 Ollama 容器,並支援在啟動時下載模型。
- 深入瞭解📄 Meilisearch 託管
- 裝載📦 CommunityToolkit。Aspire。Hosting.Meilisearch
- Client📦Aspire。CommunitToolkit.Meilisearch
利用 Meilisearch 容器的 Aspire 元件。
- 深入瞭解📄 Rust 代管
- 托管📦 CommunityToolkit.Aspire.Hosting.Rust
- Client:不適用
Rust 應用程式的託管整合。
- 深入瞭解📄 SQL 資料庫專案託管
- Hosting📦 CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects
- Client:N/A
SQL 資料庫專案的 Aspire 託管整合。

如需詳細資訊,請參閱 .NET.NET Aspire Community Toolkit