Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le integrazioni di Aspire sono una suite curata di pacchetti NuGet selezionati per facilitare l'integrazione di applicazioni native al cloud con servizi e piattaforme importanti, ad esempio Redis e PostgreSQL. Ogni integrazione fornisce funzionalità essenziali nate per il cloud tramite provisioning automatico o modelli di configurazione standardizzati.
Consiglio
Cercare sempre di usare la versione più recente delle Aspire integrazioni per sfruttare le funzionalità, i miglioramenti e gli aggiornamenti della sicurezza più recenti.
Avvertimento
Le integrazioni eseguono codice nell'ambiente di sviluppo. Assicurarsi che le integrazioni di terze parti siano attendibili prima dell'uso. Per altre informazioni, vedere Procedure consigliate per una catena di approvvigionamento software sicura.
Responsabilità di integrazione
La maggior parte delle Aspire integrazioni è costituita da due librerie separate, ognuna con una responsabilità diversa. Un tipo rappresenta le risorse all'interno del progetto AppHost , note come integrazioni di hosting. L'altro tipo di integrazione rappresenta le librerie client che si connettono alle risorse modellate dalle integrazioni di hosting e vengono definite integrazioni client .
Integrazioni di hosting
Le integrazioni di hosting configurano le applicazioni effettuando il provisioning di risorse (ad esempio contenitori o risorse cloud) o puntando a istanze esistenti, ad esempio un'istanza locale di SQL Server. Questi pacchetti modellano vari servizi, piattaforme o funzionalità, tra cui cache, database, registrazione, archiviazione e sistemi di messaggistica.
Le integrazioni di hosting estendono l'interfaccia IDistributedApplicationBuilder , consentendo al progetto AppHost di esprimere le risorse all'interno del modello di app. Le integrazioni di hosting funzionano con qualsiasi tipo di applicazione, non solo .NET con le applicazioni. Forniscono informazioni sull'infrastruttura e inseriscono i dettagli di configurazione, ad esempio stringhe di connessione, endpoint e credenziali, come variabili di ambiente in qualsiasi progetto, eseguibile o contenitore che vi fa riferimento.
I pacchetti NuGet ufficiali di integrazione dell'hosting sono contrassegnati con , aspire, e integration. Oltre alle integrazioni di hosting ufficiali, la community ha creato integrazioni di hosting per vari servizi e piattaforme come parte di Community Toolkit.
Per informazioni sulla creazione di un'integrazione di hosting personalizzata, vedere Creare un'integrazione dell'hosting personalizzataAspire.
integrazioni Client
Client le integrazioni collegano le librerie client a inserimento delle dipendenze (DI), definiscono lo schema di configurazione e aggiungono controlli di integrità , resilienzae telemetria, se applicabile.
Aspire Le librerie di integrazione client hanno il prefisso Aspire. e quindi includono il nome completo del pacchetto con cui si integrano, ad esempio Aspire.StackExchange.Redis.
Questi pacchetti configurano le librerie client esistenti per connettersi alle integrazioni di hosting. Estendono l'interfaccia IHostApplicationBuilder consentendo ai progetti che utilizzano client, ad esempio l'app Web o l'API, di usare la risorsa connessa. I pacchetti NuGet ufficiali di integrazione client sono contrassegnati con aspire, integratione client. Oltre alle integrazioni client ufficiali, la community ha creato integrazioni client per vari servizi e piattaforme come parte di Community Toolkit.
Importante
Aspire le integrazioni richiedono IHostApplicationBuilder e non sono compatibili con HostingStartup le implementazioni, che forniscono solo l'accesso a IWebHostBuilder. Se stai utilizzando HostingStartup per la configurazione modulare, consulta HostingStartup non è supportato con le integrazioni di Aspire per indicazioni sulla migrazione.
Per altre informazioni sulla creazione di un'integrazione client personalizzata, vedere Creare integrazioni client personalizzateAspire.
Relazione tra l'hosting e le integrazioni client
L'hosting e le integrazioni client sono ottimali quando vengono usate insieme, ma non sono collegate e possono essere usate separatamente. Alcune integrazioni di hosting non hanno un'integrazione client corrispondente. La configurazione è ciò che rende l'integrazione dell'hosting funzionante con l'integrazione client.
Client le integrazioni sono .NETspecifiche e offrono approcci pratici e predefiniti per configurare .NET le applicazioni. Tuttavia, è possibile usare integrazioni di hosting senza integrazioni client per.NET applicazioni non o quando si preferisce configurare le connessioni manualmente. In questi scenari, l'integrazione dell'hosting fornisce ancora l'infrastruttura ed espone le informazioni di connessione tramite variabili di ambiente utilizzabili da qualsiasi tecnologia applicativa.
Si consideri il diagramma seguente che illustra la relazione tra l'hosting e le integrazioni client:
Il progetto AppHost è la posizione in cui vengono usate le integrazioni di hosting. La configurazione, in particolare le variabili di ambiente, viene inserita in progetti, eseguibili e contenitori, consentendo alle integrazioni client di connettersi alle integrazioni host.
Funzionalità di integrazione
Quando si aggiunge un'integrazione client a un progetto all'interno della Aspire soluzione, le impostazioni predefinite del servizio vengono applicate automaticamente a tale progetto, ovvero viene fatto riferimento al progetto Service Defaults e viene chiamato il AddServiceDefaults metodo di estensione. Queste impostazioni predefinite sono progettate per funzionare correttamente nella maggior parte degli scenari e possono essere personalizzate in base alle esigenze. Vengono applicate le seguenti impostazioni predefinite del servizio:
Osservabilità e telemetria: configura automaticamente il logging, il tracing e le metriche:
- log: tecnica in cui il codice viene strumentato per produrre log di eventi interessanti che si sono verificati durante l'esecuzione del programma.
- Tracciamento: una forma specializzata di tracciamento che aiuta a localizzare errori e problemi di prestazioni all'interno delle applicazioni distribuite su più macchine o processi.
- Metriche: misurazioni numeriche registrate nel tempo per monitorare le prestazioni e lo stato dell'applicazione. Le metriche vengono spesso usate per generare avvisi quando vengono rilevati potenziali problemi.
controlli di integrità: espone gli endpoint HTTP per fornire informazioni di base sulla disponibilità e sullo stato di un'app. I controlli di integrità vengono usati per influenzare le decisioni prese da agenti di orchestrazione dei contenitori, servizi di bilanciamento del carico, gateway API e altri servizi di gestione.
resilienza: capacità del sistema di reagire agli errori e rimanere funzionanti. La resilienza va oltre la semplice prevenzione degli errori, includendo anche il ripristino e la ricostruzione dell'ambiente cloud-native per riportarlo a uno stato integro.
Comprendere i metodi di estensione dell'integrazione host
Aspire le integrazioni di hosting forniscono metodi di estensione che iniziano con Add o With. Questi metodi sono conformi al modello seguente:
-
Add*metodi:Add*i metodi creano e registrano nuove risorse all'interno di AppHost e restituiscono un oggettoIResourceBuilder<TResource>in cuiTResourceè il tipo di risorsa concreto aggiunto. In questo modo è possibile continuare la configurazione fluente nel generatore restituito. Ad esempio, la chiamata di AddAzureServiceBus restituisce unIResourceBuilder<AzureServiceBusResource>, e quindi la chiamata di AddServiceBusQueue su tale generatore di spazi dei nomi restituisce unIResourceBuilder<AzureServiceBusQueueResource>. Questo modello modella le relazioni padre-figlio,ad esempio uno spazio dei nomi del bus di servizio e le relative code o argomenti, mantenendo al tempo stesso un'API fluent builder coerente. -
With*metodi: usareWith*metodi per configurare o migliorare una risorsa esistente. Questi metodi restituiscono in genere lo stesso tipo di oggetto dell'elemento padre, consentendo di concatenare chiamate di configurazione aggiuntive.
Importante
Quando si usano i metodi Add, assicurarsi di passare l'oggetto risorsa corretto al cliente per l'integrazione. Il passaggio dell'oggetto errato può causare connessioni o errori di runtime configurati in modo errato.
Si consideri questo codice:
var serviceBus = builder.AddAzureServiceBus(name: "serviceBus")
.AddServiceBusTopic(name: "messagetopic");
var apiService = builder.AddProject<Projects.servicebusexp_ApiService>("apiservice")
.WithHttpHealthCheck("/health")
.WithReference(serviceBus);
// The serviceBus is an IResourceBuilder<AzureServiceBusTopicResource> type
Si potrebbe prevedere che serviceBus rappresenti la risorsa Azure Service Bus, ma in realtà, siccome è stata chiamata AddServiceBusTopic sulla stessa riga, serviceBus è una risorsa di argomento Azure Service Bus. Per evitare questo risultato, chiamare AddServiceBusTopic su una riga separata:
var serviceBus = builder.AddAzureServiceBus(name: "serviceBus");
var topic = serviceBus.AddServiceBusTopic(name: "messagetopic");
var apiService = builder.AddProject<Projects.servicebusexp_ApiService>("apiservice")
.WithHttpHealthCheck("/health")
.WithReference(serviceBus);
// The serviceBus is an IResourceBuilder<AzureServiceBusResource> type
È ora possibile scegliere di passare la risorsa di cui il progetto consumatore ha bisogno. O la risorsa del Service Bus o quella dell'argomento, come nell'esempio.
Questa distinzione consente di modellare l'infrastruttura dell'applicazione in modo accurato e di garantire che le integrazioni client ricevano le informazioni di connessione corrette.
Considerazioni sul controllo delle versioni
Le integrazioni di hosting e client vengono aggiornate ogni versione in modo che siano destinate alle versioni stabili più recenti delle risorse dipendenti. Quando le immagini del contenitore vengono aggiornate con nuove versioni dell'immagine, le integrazioni di hosting vengono aggiornate a queste nuove versioni. Analogamente, quando è disponibile una nuova versione di NuGet per una libreria client dipendente, l'integrazione client corrispondente viene aggiornata alla nuova versione. Ciò garantisce che le funzionalità e gli aggiornamenti della sicurezza più recenti siano disponibili per le applicazioni. Il Aspire tipo di aggiornamento (principale, secondario, patch) non indica necessariamente il tipo di aggiornamento nelle risorse dipendenti. Ad esempio, una nuova versione principale di una risorsa dipendente può essere aggiornata in una Aspire versione patch, se necessario.
Quando si verificano modifiche di rilievo importanti nelle risorse dipendenti, le integrazioni possono essere suddivise temporaneamente in pacchetti dipendenti dalla versione per facilitare l'aggiornamento durante la modifica che causa un'interruzione. Per altre informazioni, vedere il primo esempio di un tale cambiamento significativo.
Integrazioni ufficiali
Aspire offre molte integrazioni che consentono di creare applicazioni native del cloud. Queste integrazioni sono progettate per funzionare perfettamente con le Aspire librerie AppHost e client. Le sezioni seguenti illustrano in dettaglio le integrazioni indipendenti dal cloud, specifiche per Azure, Amazon Web Services (AWS) e Community Toolkit.
Integrazioni indipendenti dal cloud
La sezione seguente illustra in dettaglio le integrazioni indipendenti dal Aspire cloud con collegamenti ai rispettivi pacchetti NuGet e docs e fornisce una breve descrizione di ogni integrazione.
| Documentazione di integrazione e pacchetti NuGet | Descrizione |
|---|---|
|
-
Scopri di più: 📄 Apache Kafka - Hosting: 📦Aspire. Hosting.Kafka - Client: 📦Aspire. Confluent.Kafka |
Libreria per la creazione e il consumo di messaggi da un broker Apache Kafka. |
|
-
Scopri di più: 📄 Dapr - Hosting: 📦Aspire. Hosting.Dapr - Client: N/D |
Una libreria per la modellazione di Dapr come risorsa Aspire. |
|
-
Scopri di più: 📄 Docker - Hosting: 📦Aspire. Hosting.Docker - Client: N/D |
Libreria per la distribuzione di Aspire applicazioni tramite Docker Compose. |
|
-
Scopri di più: 📄 Elasticsearch - Hosting: 📦Aspire. Hosting.Elasticsearch - Client: 📦Aspire. Elastic.Clients.Elasticsearch |
Libreria per l'accesso ai database Elasticsearch. |
|
-
Scopri di più: 📄 Keycloak - Hosting: 📦Aspire. Hosting.Keycloak - Client: 📦Aspire.Keycloak. Autenticazione |
Libreria per accedere all'autenticazione Keycloak. |
|
-
Scopri di più: 📄 Milvus - Hosting: 📦Aspire. Hosting.Milvus - Client: 📦Aspire.Milvus.Client |
Libreria per l'accesso ai database Milvus. |
|
-
Scopri di più: 📄MongoDB Driver - Hosting: 📦Aspire. Hosting.MongoDB - Client: 📦Aspire.MongoDB. Autista |
Libreria per l'accesso ai database MongoDB. |
|
-
Scopri di più: 📄 MySqlConnector - Hosting: 📦Aspire. Hosting.MySql - Client: 📦Aspire. MySqlConnector |
Una libreria per l'accesso a database MySqlConnector. |
|
-
Scopri di più: 📄 NATS - Hosting: 📦Aspire. Hosting.Nats - Client: 📦Aspire.NATS. Rete |
Una libreria per accedere alla messaggistica NATS. |
|
-
Scopri di più: 📄Oracle - EF Core - Hosting: 📦Aspire. Hosting.Oracle - Client: 📦Aspire.Oracle. EntityFrameworkCore |
Una libreria per l'accesso ai database Oracle con Entity Framework Core. |
|
-
Scopri di più: 📄 OpenAI - Hosting: 📦Aspire. Hosting.OpenAI - Client: 📦Aspire.OpenAI |
Libreria per l'accesso alle OpenAI API. |
|
-
Scopri di più: 📄 Orleans - Hosting: 📦Aspire. Hosting.Orleans - Client: N/D |
Libreria per modellare Orleans come risorsa Aspire. |
|
-
Scopri di più: 📄 Pomelo MySQL - EF Core - Hosting: 📦Aspire. Hosting.MySql - Client: 📦Aspire. Pomelo.EntityFrameworkCore.MySql |
Una libreria per l'accesso ai database MySql con Entity Framework Core. |
|
-
Scopri di più: 📄PostgreSQL - EF Core - Hosting: 📦Aspire. Hosting.PostgreSQL - Client: 📦Aspire. Npgsql.EntityFrameworkCore.PostgreSQL |
Libreria per l'accesso ai database di PostgreSQL tramite Entity Framework Core. |
|
-
Scopri di più: 📄 PostgreSQL - Hosting: 📦Aspire. Hosting.PostgreSQL - Client: 📦Aspire. Npgsql |
Libreria per l'accesso ai database PostgreSQL. |
|
-
Scopri di più: 📄 Qdrant - Hosting: 📦Aspire. Hosting.Qdrant - Client: 📦Aspire. Qdrant.Client |
Libreria per l'accesso ai database di Qdrant. |
|
-
Scopri di più: 📄 RabbitMQ - Hosting: 📦Aspire. Hosting.RabbitMQ - Client: 📦Aspire.RabbitMQ.Client |
Libreria per l'accesso a RabbitMQ. |
|
-
Scopri di più: 📄Redis Memorizzazione nella cache distribuita - Hosting: 📦Aspire. Hosting.Redis, 📦Aspire. Hosting.Garneto 📦Aspire. Hosting.Valkey - Client: 📦Aspire. StackExchange.Redis. DistributedCaching |
Libreria per accedere alle cache Redis per cache distribuita. |
|
-
Scopri di più: 📄Redis Cache di output - Hosting: 📦Aspire. Hosting.Redis, 📦Aspire. Hosting.Garneto 📦Aspire. Hosting.Valkey - Client: 📦Aspire. StackExchange.Redis. OutputCaching |
Una libreria per accedere alle cache di Redis per il caching di output . |
|
-
Scopri di più: 📄 Redis - Hosting: 📦Aspire. Hosting.Redis, 📦Aspire. Hosting.Garneto 📦Aspire. Hosting.Valkey - Client: 📦Aspire. StackExchange.Redis |
Libreria per l'accesso alle cache Redis. |
|
-
Scopri di più: 📄 Seq - Hosting: 📦Aspire. Hosting.Seq - Client: 📦Aspire.Seq |
Libreria per la registrazione su Seq. |
|
-
Scopri di più: 📄SQL Server - EF Core - Hosting: 📦Aspire. Hosting.SqlServer - Client: 📦Aspire. Microsoft.EntityFrameworkCore.SqlServer |
Libreria per accedere ai database di SQL Server utilizzando EF Core. |
|
-
Scopri di più: 📄 SQL Server - Hosting: 📦Aspire. Hosting.SqlServer - Client: 📦Aspire. Microsoft.Data.SqlClient |
Libreria per l'accesso ai database SQL Server. |
Per altre informazioni sull'uso delle integrazioni di Aspire in Visual Studio, vedere strumenti Visual Studio.
integrazioni Azure
Le integrazioni Azure configurano le applicazioni per utilizzare le risorse Azure. Queste integrazioni di hosting sono disponibili nei pacchetti NuGet Aspire.Hosting.Azure.*, mentre le integrazioni client sono disponibili nei pacchetti NuGet Aspire.*:
Integrazioni di hosting di Amazon Web Services (AWS)
| Documentazione di integrazione e pacchetti NuGet | Descrizione |
|---|---|
|
-
Scopri di più: 📄 hosting AWS - Hosting: 📦Aspire. Hosting.AWS - Client: N/D |
Libreria per la modellazione risorse AWS. |
Per ulteriori informazioni, vedere GitHub: Aspire. Libreria di Hosting AWS.
Kubernetes integrazioni di hosting
| Documentazione di integrazione e pacchetti NuGet | Descrizione |
|---|---|
|
-
Altre informazioni: 📄Kubernetes hosting - Hosting: 📦Aspire. Hosting.Kubernetes - Client: N/D |
Una libreria per generare manifesti di Kubernetes distribuzione dal modello di applicazione .NETAspire. |
Integrazioni di Community Toolkit
Nota
Le integrazioni di Community Toolkit sono guidate dalla community e gestite dalla Aspire community. Queste integrazioni non sono ufficialmente supportate dal Aspire team.
| Documentazione di integrazione e pacchetti NuGet | Descrizione |
|---|---|
|
-
Ulteriori informazioni: 📄 Bun hosting - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Bun - Client: N/D |
Integrazione di hosting per le app Bun. |
|
-
Scopri di più: 📄Deno hosting - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Deno - Client: N/D |
Un'integrazione di hosting per le app di Deno. |
|
-
Scopri di più: 📄 Vai a hosting - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Golang - Client: N/D |
Integrazione hosting per applicazioni Go. |
|
-
Scopri di più: 📄 hosting Java/Spring - Hosting: 📦 CommunityToolkitAspire.Hosting.Java - Client: N/D |
Integrazione per l'esecuzione di codice Java in Aspire usando il JDK locale o usando un contenitore. |
|
-
Scopri di più: 📄Node.js estensioni di hosting - Hosting: 📦 CommunityToolkit.Aspire. Hosting.NodeJs.Extensions - Client: N/D |
Integrazione che contiene alcune estensioni aggiuntive per l'esecuzione di applicazioni Node.js |
|
-
Scopri di più: 📄 Ollama - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Ollama - Client: 📦Aspire. CommunitToolkit.OllamaSharp |
Componente Aspire che sfrutta il contenitore Ollama con supporto per scaricare un modello all'avvio. |
|
-
Scopri di più: 📄 hosting Meilisearch - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Meilisearch - Client: 📦Aspire. CommunitToolkit.Meilisearch |
Un componente Aspire che sfrutta il contenitore Meilisearch. |
|
-
Scopri di più: 📄 hosting Rust - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Rust - Client: N/D |
Integrazione di hosting per le app Rust. |
|
-
Ulteriori informazioni: 📄 ospitalità di progetti di database SQL - Hosting: 📦 CommunityToolkit.Aspire. Hosting.SqlDatabaseProjects - Client: N/D |
Un'integrazione di hosting Aspire per progetti di database SQL. |
|
-
Altre informazioni: 📄 RavenDB - Hosting: 📦 CommunityToolkit.Aspire. Hosting.RavenDB - Client: 📦Aspire. CommunityToolkit.RavenDB.Client |
Componente Aspire che sfrutta il contenitore RavenDB . |
Per altre informazioni, vedere Aspire Community Toolkit.