共用方式為


.NET .NET Aspire 整合概觀

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

提示

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

整合責任

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

主機代管整合

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

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

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

Client 整合

Client 整合將客戶端程式庫連接到 依賴注入、定義配置架構,並增加 健康檢查韌性,以及 遙測。 .NET .NET Aspire 用戶端整合庫的前綴為 Aspire.,並包括其所整合的完整套件名稱,例如 Aspire.StackExchange.Redis

這些套件將設定現有的客戶端函式庫,以便連接到託管整合。 它們會擴充 IHostApplicationBuilder 介面,讓使用者專案,例如 Web 應用程式或 API,來使用連線的資源。 官方 用戶端整合 NuGet 套件 會以 aspireintegrationclient標記。 除了官方用戶端整合之外,社群已建立各種服務和平臺的用戶端整合,作為社群工具組的一部分。

如需建立自訂用戶端整合的詳細資訊,請參閱 建立自訂 .NET.NET Aspire 用戶端整合

主機代管與客戶端整合之間的關聯性

在一起使用時,裝載和用戶端整合最好,但 不會 結合,而且可以分開使用。 有些主機集成沒有對應的用戶端集成。 設定是讓主機整合與用戶端整合協同運作的關鍵。

請考慮下圖,描述裝載與用戶端整合之間的關聯性:

圖表

應用程式宿主專案是用來執行託管整合的地方。 組態,特別是環境變數,會嵌入到專案、可執行檔和容器中,讓客戶端整合可以連接到宿主整合。

整合功能

當您將用戶端整合新增至 .NET.NET Aspire 方案內的專案時,服務預設會自動套用至該專案;表示會參考服務預設值專案,並呼叫 AddServiceDefaults 擴充方法。 這些預設值是設計成在大部分情況下都能正常運作,而且可以視需要自定義。 套用下列服務預設值:

  • 可檢視性和遙測:自動設定記錄、追蹤和計量組態:

    • 記錄:一種技術,將程式碼被設置以產生程式執行期間發生的相關事件的記錄。
    • 追蹤:這是一種特殊形式的紀錄,可協助您定位分散於多部計算機或進程的應用程式中的失敗和效能問題。
    • 指標:記錄在一段時間內的數值測量,以監控應用程式的效能與健康狀況。 偵測到潛在問題時,計量通常用來產生警示。
  • 健康情況檢查:公開 HTTP 端點以提供應用程式的基本可用性和狀態資訊。 健康情況檢查可用來影響容器協調器、負載平衡器、API 閘道和其他管理服務所做的決策。

  • 復原能力:系統回應失敗的能力,仍然保持運作。 復原延伸超過防止失敗的範圍,包括復原和重新建構雲端原生環境回到狀況良好的狀態。

版本控制考量

主機和用戶端整合在每個版本中更新,以最新穩定版本的依賴資源為目標。 當容器映像更新為新的映像版本時,主機整合會同步更新到這些新版本。 同樣地,當相依用戶端連結庫有新的 NuGet 版本可用時,對應的用戶端整合會更新為新版本。 這可確保應用程式可以使用最新的功能和安全性更新。

當相依賴的資源發生重大變更時,整合可能會暫時分割成版本相依的套件,以簡化跨越重大變更的版本更新。 如需詳細資訊,請參閱 這類重大變更的第一個範例

官方整合

.NET .NET Aspire 提供許多整合,可協助您建置雲端原生應用程式。 這些整合的設計目的是要與 .NET.NET Aspire 應用程式主機和用戶端連結庫順暢地搭配運作。 下列各節詳述與雲端無關、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。主機。Milvus
- Client📦Aspire。Milvus。Client
用來存取 Milvus 資料庫的函式庫。
- 深入瞭解📄MongoDB 驅動程式
- 託管📦Aspire。主機。MongoDB
- Client📦Aspire。MongoDB。驅動程式
用來存取 MongoDB 資料庫的函式庫。
- 深入瞭解📄 MySqlConnector
- Hosting📦Aspire。Hosting.MySql
- Client📦Aspire。MySqlConnector
用於存取 MySqlConnector 資料庫的工具庫。
- 深入瞭解📄 NATS
- 託管📦Aspire。Hosting.Nats
- Client📦Aspire。NATS.Net
存取 NATS 傳訊的程式庫。
- 深入瞭解📄Oracle - EF Core
- 託管📦Aspire。主機。Oracle
- Client📦Aspire。Oracle。EntityFrameworkCore
使用 Oracle存取 Entity Framework Core 資料庫的函式庫。
- 深入瞭解📄 Orleans
- 託管📦Aspire。主機。Orleans
- Client:不適用
模型化 Orleans 為 .NET.NET Aspire 資源的資料庫。
- 深入瞭解📄 波梅洛 MySQL - EF Core
- 託管📦Aspire。Hosting.MySql
- Client📦Aspire。Pomelo.EntityFrameworkCore.MySql
用於使用 Entity Framework Core存取 MySql 資料庫的資料庫庫存。
- 深入瞭解📄PostgreSQL - EF Core
- 託管📦Aspire。主機。PostgreSQL
- Client📦Aspire。Npgsql.EntityFrameworkCore.PostgreSQL
使用 PostgreSQL存取 Entity Framework Core 資料庫的函式庫。
- 深入瞭解📄 PostgreSQL
- 託管📦Aspire。主機。PostgreSQL
- Client📦Aspire。Npgsql
用來存取 PostgreSQL 資料庫的函式庫。
- 深入瞭解📄 Qdrant
- 託管📦Aspire。Hosting.Qdrant
- Client📦Aspire。Qdrant。Client
用於存取 Qdrant 資料庫的函式庫。
- 深入瞭解📄 RabbitMQ
- 託管📦Aspire。主機。RabbitMQ
- Client📦Aspire。RabbitMQ。Client
用於存取 RabbitMQ的程式庫。
- 了解更多📄Redis 分散式快取
- Hosting📦Aspire。Hosting。Redis📦Aspire。Hosting.Garnet,或 📦Aspire。Hosting.Valkey
- Client📦Aspire。StackExchange。Redis。DistributedCaching
用於存取 Redis 快取的函式庫,用於 分散式快取
- 深入瞭解📄Redis 輸出快取
- Hosting📦Aspire。Hosting。Redis📦Aspire。Hosting.Garnet,或 📦Aspire。Hosting.Valkey
- Client📦Aspire。StackExchange。Redis。OutputCaching
存取 Redis 快取的函式庫,用於 的輸出快取
- 深入瞭解📄 Redis
- Hosting📦Aspire。Hosting。Redis📦Aspire。Hosting.Garnet,或 📦Aspire。Hosting.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 資料庫的函式庫。

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

Azure 整合

Azure 整合會將應用程式設定為使用 Azure 資源。 這些裝載整合可在 Aspire.Hosting.Azure.* NuGet 套件中使用,而其用戶端整合可在 Aspire.* NuGet 套件中使用:

整合文件與 NuGet 套件 描述
- 深入瞭解📄Azure 應用程式組態
- Hosting📦Aspire。托管Azure。應用配置
- Client:不適用
Azure 應用程式組態互動的程式庫。
- 深入瞭解📄 Azure Application Insights
- 託管📦Aspire。託管。Azure。ApplicationInsights
- Client:不適用
Azure Application Insights互動的程式庫。
- 深入瞭解📄Azure Cosmos DB - EF Core
- 主機托管📦Aspire。Azure。CosmosDB
- Client📦Aspire。Microsoft.EntityFrameworkCore.Cosmos
使用 Azure存取 Azure Cosmos DBEntity Framework Core 資料庫的函式庫。
- 深入瞭解📄 Azure Cosmos DB
- 主機托管📦Aspire。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:不適用
Azure 功能整合的函式庫。
- 深入瞭解📄 Azure Key Vault
- 託管📦Aspire。託管。Azure。KeyVault
- Client📦Aspire。Azure。Security.KeyVault
用於存取 Azure Key Vault的程式庫。
- 深入瞭解📄Azure 操作見解
- 主機📦Aspire。主機。Azure。OperationalInsights
- Client:不適用
用於與 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
- 主機託管📦AspireAzure。儲存
- Client📦Aspire。Azure。Storage.Queues
用於存取 Azure Storage Queues的程式庫。
- 深入瞭解📄 Azure Table Storage
- 主機託管📦AspireAzure。儲存
- 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:不適用
Azure Static Web Apps 模擬器的主機整合 (請注意:此功能不支援將專案部署到 Azure Static Web Apps)。
- 深入瞭解📄 Bun 託管
- 裝載📦 CommunityToolkit。Aspire。Hosting.Bun
- Client:不適用
Bun 應用程式的託管整合。
- 深入瞭解📄Deno 主機代管
- 主機📦 CommunityToolkit。Aspire。主機托管。Deno
- Client:不適用
Deno 應用程式的主機託管整合。
- 深入瞭解📄 Go 主機代管
- Hosting📦 CommunityToolkit。Aspire。Hosting.Golang
- Client:不適用
Go 應用程式的主機托管整合。
- 深入瞭解📄 Java/Spring 主機代管
- 主機📦 CommunityToolkit。Aspire。Hosting.Java
- Client:不適用
在 .NET.NET Aspire 中,使用本地 JDK 或使用容器集成運行 Java 程式碼。
- 深入瞭解📄Node.js 主機擴充功能
- 主機📦 CommunityToolkit。Aspire。Hosting.NodeJs.Extensions
- Client:不適用
整合,其中包含執行 Node.js 應用程式的其他擴充功能
- 深入瞭解📄 Ollama
- 裝載📦 CommunityToolkit。Aspire。Hosting.Ollama
- Client📦Aspire。CommunitToolkit.OllamaSharp
Aspire 元件,利用 Ollama 容器,並支援在啟動時下載模型。
- 深入瞭解📄 Meilisearch 託管
- 裝載📦 CommunityToolkit。Aspire。Hosting.Meilisearch
- Client📦Aspire。CommunitToolkit.Meilisearch
利用 Aspire 容器的 元件。
- 深入瞭解📄 Rust 代管
- 托管📦 CommunityToolkit.Aspire.Hosting.Rust
- Client:不適用
Rust 應用程式的託管整合。
- 深入瞭解📄 SQL 資料庫專案託管
- Hosting📦 CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects
- Client:不適用
SQL 資料庫專案的 Aspire 託管整合。

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