Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Aspire integreringar är en kuraterad uppsättning NuGet-paket som valts för att underlätta integreringen av molnbaserade program med framstående tjänster och plattformar, till exempel Redis och PostgreSQL. Varje integrering tillhandahåller viktiga molnbaserade funktioner genom antingen automatisk etablering eller standardiserade konfigurationsmönster.
Tips
Sträva alltid efter att använda den senaste versionen av Aspire integreringar för att dra nytta av de senaste funktionerna, förbättringarna och säkerhetsuppdateringarna.
Varning
Integreringar kör kod i utvecklingsmiljön. Se till att integreringar från tredje part är betrodda före användning. Mer information finns i Metodtips för en säker leverantörskedja för programvara.
Integrationsansvar
De flesta Aspire integreringar består av två separata bibliotek, var och en med olika ansvar. En typ representerar resurser i AppHost-projektet , som kallas värdintegrering. Den andra typen av integrering representerar klientbibliotek som ansluter till de resurser som modelleras av hosting-integreringar, och som kallas klientintegreringar.
Värdtjänster för integrationer
Värdintegrationer konfigurerar applikationer genom att etablera resurser (till exempel containrar eller molnresurser) eller peka på befintliga instanser (till exempel en lokal SQL-server). Dessa paket modellerar olika tjänster, plattformar eller funktioner, inklusive cacheminnen, databaser, loggning, lagring och meddelandesystem.
Värdintegreringar utökar IDistributedApplicationBuilder gränssnittet, vilket gör det möjligt för AppHost-projektet att uttrycka resurser i sin appmodell. Värdintegreringar fungerar med alla typer av program, inte bara .NET program. De tillhandahåller infrastruktur och inmatar konfigurationsinformation (till exempel anslutningssträngar, slutpunkter och autentiseringsuppgifter) som miljövariabler i alla projekt, körbara filer eller containrar som refererar till dem.
De officiella värdintegrerings-NuGet-paketen är taggade med aspire, integration och hosting. Förutom de officiella värdintegreringarna har community skapat värdintegreringar för olika tjänster och plattformar som en del av Community Toolkit.
Information om hur du skapar en anpassad värdintegrering finns i Skapa anpassad Aspire värdintegrering.
Client integreringar
              Client integreringar kopplar klientbibliotek till beroendeinjektion (DI), definierar konfigurationsschema och lägger till hälsokontroller, resiliensoch telemetri där det är tillämpligt. 
              Aspire klientintegrationsbiblioteken prefixas med Aspire. och inkluderar sedan det fullständiga paketnamnet som de är integrerade med, till exempel Aspire.StackExchange.Redis.
Dessa paket konfigurerar befintliga klientbibliotek för att ansluta till värdintegreringar. De utökar IHostApplicationBuilder-gränssnittet så att klientanvändande projekt, till exempel webbappen eller API:et, kan använda den anslutna resursen. De officiella NuGet-paketen för -klientintegrering är märkta med aspire, integrationoch client. Förutom de officiella klientintegreringarna har community skapat klientintegreringar för olika tjänster och plattformar som en del av Community Toolkit.
Viktigt!
              Aspire integreringar kräver IHostApplicationBuilder och är inte kompatibla med HostingStartup implementeringar, som endast ger åtkomst till IWebHostBuilder. Om du använder HostingStartup för modulärt konfiguration kan du läsa HostingStartup stöds inte med Aspire-integrationer för vägledning gällande migrering.
Mer information om hur du skapar en anpassad klientintegrering finns i Skapa anpassade Aspire klientintegreringar.
Relation mellan värd- och klientintegreringar
Värd- och klientintegreringar är bäst när de används tillsammans, men är inte kopplade och kan användas separat. Vissa värdintegreringar har inte någon motsvarande klientintegrering. Konfigurationen gör att värdintegreringen fungerar med klientintegreringen.
Client integreringar är .NET-specifika och ger praktiska, åsiktsbaserade sätt att konfigurera .NET program. Du kan dock använda värdintegreringar utan klientintegreringar för icke-program.NET eller när du föredrar att konfigurera anslutningar manuellt. I dessa scenarier tillhandahåller värdintegrering fortfarande infrastrukturen och exponerar anslutningsinformation via miljövariabler som alla programteknik kan använda.
Tänk på följande diagram som visar relationen mellan värd- och klientintegreringar:
AppHost-projektet används som värd för integreringar. Konfiguration, särskilt miljövariabler, matas in i projekt, körbara filer och containrar, vilket gör att klientintegreringar kan ansluta till värdintegreringarna.
Integreringsfunktioner
När du lägger till en klientintegrering i ett projekt i din Aspire lösning tillämpas tjänstens standardinställningar automatiskt på projektet, vilket innebär att servicestandardprojektet refereras till och AddServiceDefaults tilläggsmetoden anropas. Dessa standardvärden är utformade för att fungera bra i de flesta scenarier och kan anpassas efter behov. Följande tjänstinställningar tillämpas:
- Observability and telemetry: Konfigurerar automatiskt konfigurationer för loggning, spårning och mått: - Loggning: En teknik där kod instrumenteras för att skapa loggar med intressanta händelser som inträffade när programmet kördes.
- Spårning: En särskild typ av loggning som hjälper dig att lokalisera fel och prestandaproblem i program som distribueras över flera datorer eller processer.
- Mått: Numeriska mätningar som registrerats över tid för att övervaka programmets prestanda och hälsa. Mått används ofta för att generera aviseringar när potentiella problem identifieras.
 
- Hälsokontroller: Exponerar HTTP-slutpunkter för att tillhandahålla grundläggande tillgänglighets- och tillståndsinformation om en app. Hälsokontroller används för att påverka beslut som fattas av containerorkestrerare, lastbalanserare, API-gatewayer och andra hanteringstjänster. 
- Återhämtning: Systemets förmåga att reagera på fel och fortfarande fungera. Resiliens sträcker sig bortom att förhindra fel till att inkludera återställning och rekonstruktion av din molnnativa miljö till ett hälsosamt tillstånd. 
Förstå metoder för värdintegreringstillägg
              Aspire värdintegreringar tillhandahåller tilläggsmetoder som börjar med antingen Add eller With. Dessa metoder följer följande mönster:
- 
              
              Add*metoder:Add*metoder skapar och registrerar nya resurser i AppHost och returnerar enIResourceBuilder<TResource>varTResourceär den konkreta resurstypen som lagts till. På så sätt kan du fortsätta med smidig konfiguration på den returnerade byggaren. Anrop av AddAzureServiceBus returnerar till exempel enIResourceBuilder<AzureServiceBusResource>, och att anropa AddServiceBusQueue på denna namespace builder returnerar enIResourceBuilder<AzureServiceBusQueueResource>. Det här mönstret modellerar föräldra-barn-relationer (som ett Service Bus-namnområde och dess köer eller ämnen) samtidigt som det bevarar ett konsekvent fluent builder API.
- 
              
              With*metoder: AnvändWith*metoder för att konfigurera eller förbättra en befintlig resurs. Dessa metoder returnerar vanligtvis samma objekttyp som föräldern, vilket gör att du kan kedja ytterligare konfigurationsanrop.
Viktigt!
När du använder Add metoder måste du skicka rätt resursobjekt till klientintegrering. Om du skickar fel objekt kan det leda till felkonfigurerade anslutningar eller körningsfel.
Tänk på den här koden:
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
Du kan förvänta dig att serviceBus representerar resursen Azure Service Bus, men eftersom du anropade AddServiceBusTopic på samma rad, är serviceBus faktiskt en Azure Service Bus ämnesresurs. Undvik det här resultatet genom att anropa AddServiceBusTopic på en separat rad:
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
Nu kan du välja att ge den resurs som projektet behöver använda. Antingen, som i exemplet, Service Bus-resursen eller ämnesresursen.
Den här skillnaden hjälper dig att modellera programmets infrastruktur korrekt och ser till att klientintegreringar får rätt anslutningsinformation.
Överväganden för versionshantering
Värd- och klientintegreringar uppdateras varje version för att rikta in sig på de senaste stabila versionerna av beroende resurser. När containeravbildningar uppdateras med nya avbildningsversioner uppdateras värdintegreringarna till dessa nya versioner. På samma sätt, när en ny NuGet-version är tillgänglig för ett beroende klientbibliotek, uppdateras motsvarande klientintegrering till den nya versionen. Detta säkerställer att de senaste funktionerna och säkerhetsuppdateringarna är tillgängliga för program. Uppdateringstypen Aspire (större, mindre, korrigering) anger inte nödvändigtvis typen av uppdatering i beroende resurser. En ny huvudversion av en beroende resurs kan till exempel uppdateras i en Aspire korrigeringsversion om det behövs.
När stora väsentliga ändringar sker i beroende resurser kan integreringar tillfälligt delas upp i versionsberoende paket för att underlätta uppdateringar genom den väsentliga ändringen. För mer information, se första exemplet på en sådan störande ändring.
Officiella integreringar
Aspire innehåller många integreringar som hjälper dig att skapa molnbaserade program. Dessa integreringar är utformade för att fungera sömlöst med Aspire AppHost- och klientbiblioteken. I följande avsnitt beskrivs molnagnostiska, Azure-specific, Amazon Web Services (AWS) och Community Toolkit-integreringar.
Molnagnostiska integrationer
I följande avsnitt beskrivs molnagnostiska Aspire integreringar med länkar till respektive dokument och NuGet-paket och innehåller en kort beskrivning av varje integrering.
| Integreringsdokument och NuGet-paket | Beskrivning | 
|---|---|
| - 
              Läs mer: 📄 Apache Kafka - Hosting: 📦Aspire. Hosting.Kafka - Client: 📦Aspire. Confluent.Kafka | Ett bibliotek för att producera och konsumera meddelanden från en Apache Kafka broker. | 
| - 
              Läs mer: 📄 Dapr - Värd: 📦Aspire. Gästfrihet.Dapr - Client: N/A | Ett bibliotek för att modellera Dapr som en Aspire resurs. | 
| - 
              Läs mer: 📄 Docker - Värd: 📦Aspire. Gästfrihet.Docker - Client: N/A | Ett bibliotek för att distribuera Aspire applikationer med Docker Compose. | 
| - 
              Läs mer: 📄 Elasticsearch - Värd: 📦Aspire. Gästfrihet.Elasticsearch - Client: 📦Aspire. Elastic.Clients.Elasticsearch | Ett bibliotek för åtkomst till Elasticsearch databaser. | 
| - 
              Läs mer: 📄 Keycloak - Värd: 📦Aspire. Gästfrihet.Keycloak - Client: 📦Aspire.Keycloak. Autentisering | Ett bibliotek för åtkomst till Keycloak autentisering. | 
| - 
              Läs mer: 📄 Milvus - Värd: 📦Aspire. Gästfrihet.Milvus - Client: 📦Aspire.Milvus.Client | Ett bibliotek för åtkomst till Milvus databaser. | 
| - 
              Läs mer: 📄MongoDB Driver - Värd: 📦Aspire. Gästfrihet.MongoDB - Client: 📦Aspire.MongoDB. Drivrutin | Ett bibliotek för åtkomst till MongoDB databaser. | 
| - 
              Läs mer: 📄 MySqlConnector - Värd: 📦Aspire. Hosting.MySql - Client: 📦Aspire. MySqlConnector | Ett bibliotek för åtkomst till MySqlConnector- databaser. | 
| - 
              Läs mer: 📄 NATS - : 📦Aspire.Hosting.Nats - Client: 📦Aspire.NATS. Nät | Ett bibliotek för att komma åt NATS meddelanden. | 
| - 
              Läs mer: 📄Oracle – EF Core - Värd: 📦Aspire. Gästfrihet.Oracle - Client: 📦Aspire.Oracle. EntityFrameworkCore | Ett bibliotek för att komma åt Oracle-databaser med Entity Framework Core. | 
| - 
              Läs mer: 📄 OpenAI - Värd: 📦Aspire. Gästfrihet.OpenAI - Client: 📦Aspire.OpenAI | Ett bibliotek för åtkomst till OpenAI API:er. | 
| - 
              Läs mer: 📄 Orleans - Värd: 📦Aspire. Gästfrihet.Orleans - Client: N/A | Ett bibliotek för att modellera Orleans som en Aspire resurs. | 
| - 
              Läs mer: 📄 Pomelo MySQL – EF Core - Värd: 📦Aspire. Hosting.MySql - Client: 📦Aspire. Pomelo.EntityFrameworkCore.MySql | Ett bibliotek för åtkomst till MySql-databaser med Entity Framework Core. | 
| - 
              Läs mer: 📄PostgreSQL – EF Core - Värd: 📦Aspire. Gästfrihet.PostgreSQL - Client: 📦Aspire. Npgsql.EntityFrameworkCore.PostgreSQL | Ett bibliotek för att komma åt PostgreSQL databaser med hjälp av Entity Framework Core. | 
| - 
              Läs mer: 📄 PostgreSQL - Värd: 📦Aspire. Gästfrihet.PostgreSQL - Client: 📦Aspire. Npgsql | Ett bibliotek för åtkomst till PostgreSQL databaser. | 
| - 
              Läs mer: 📄 Qdrant - Hosting: 📦Aspire. Hosting.Qdrant - Client: 📦Aspire. Qdrant.Client | Ett bibliotek för åtkomst till Qdrant- databaser. | 
| - 
              Läs mer: 📄 RabbitMQ - Värd: 📦Aspire. Gästfrihet.RabbitMQ - Client: 📦Aspire.RabbitMQ.Client | Ett bibliotek för att komma åt RabbitMQ. | 
| - 
              Läs mer: 📄Redis distribuerad cachelagring - Hosting: 📦Aspire. Hosting.Redis, 📦Aspire. Hosting.Garneteller 📦Aspire. Hosting.Valkey - Client: 📦Aspire. StackExchange.Redis. Distribuerad cachelagring | Ett bibliotek för åtkomst till Redis cacheminnen för distribuerad cachelagring. | 
| - 
              Läs mer: 📄Redis Cachelagring av utdata - Hosting: 📦Aspire. Hosting.Redis, 📦Aspire. Hosting.Garneteller 📦Aspire. Hosting.Valkey - Client: 📦Aspire. StackExchange.Redis. OutputCaching | Ett bibliotek för åtkomst till Redis cacheminnen för cachelagring av utdata. | 
| - 
              Läs mer: 📄 Redis - Hosting: 📦Aspire. Hosting.Redis, 📦Aspire. Hosting.Garneteller 📦Aspire. Hosting.Valkey - Client: 📦Aspire. StackExchange.Redis | Ett bibliotek för åtkomst till Redis cacheminnen. | 
| - 
              Läs mer: 📄 Seq - Värd: 📦Aspire. Gästfrihet.Seq - Client: 📦Aspire.Seq | Ett bibliotek för loggning till Seq. | 
| - 
              Läs mer: 📄SQL Server – EF Core - Värd: 📦Aspire. Hosting.SqlServer - Client: 📦Aspire. Microsoft.EntityFrameworkCore.SqlServer | Ett bibliotek för att komma åt SQL Server databaser med hjälp av EF Core. | 
| - 
              Läs mer: 📄 SQL Server - Värd: 📦Aspire. Hosting.SqlServer - Client: 📦Aspire. Microsoft.Data.SqlClient | Ett bibliotek för åtkomst till SQL Server databaser. | 
Mer information om hur du arbetar med Aspire-integreringar i Visual Studiofinns i Visual Studio verktyg.
Azure integreringar
              Azure-integreringar konfigurerar program att använda Azure resurser. Dessa värdintegreringar är tillgängliga i Aspire.Hosting.Azure.* NuGet-paket, medan deras klientintegreringar är tillgängliga i Aspire.* NuGet-paket:
Amazon Web Services (AWS) värdintegrationer
| Integreringsdokument och NuGet-paket | Beskrivning | 
|---|---|
| - 
              Läs mer: 📄 AWS Hosting - Hostingtjänst: 📦Aspire.Hosting.AWS - Client: N/A | Ett bibliotek för modellering AWS-resurser. | 
Mer information finns i GitHub: Aspire. Hosting.AWS-bibliotek.
Kubernetes värd för integreringar
| Integreringsdokument och NuGet-paket | Beskrivning | 
|---|---|
| - 
              Läs mer: 📄Kubernetes värdtjänst - Värd: 📦Aspire. Gästfrihet.Kubernetes - Client: N/A | Ett bibliotek för att generera Kubernetes distributionsmanifest från din .NETAspire programmodell. | 
Community Toolkit-integreringar
Anteckning
Community Toolkit-integreringarna är communitydrivna och underhålls av communityn Aspire . Dessa integreringar stöds inte officiellt av Aspire teamet.
| Integreringsdokument och NuGet-paket | Beskrivning | 
|---|---|
| - 
              Läs mer: 📄 Bun hosting - Värdtjänster: 📦 CommunityToolkit.Aspire.Hosting.Bun - Client: N/A | En värdintegrering för Bun-appar. | 
| - 
              Läs mer: 📄Deno värd för - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Deno - Client: N/A | En värdintegrering för Deno appar. | 
| - 
              Läs mer: 📄 Gå till värdtjänster - Hosting: 📦 CommunityToolkit.AspireHosting.Golang - Client: N/A | En värdintegrering för Go-appar. | 
| - 
              Läs mer: 📄 Java/Spring-hosting - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Java - Client: N/A | En integrering för att köra Java-kod i Aspire antingen med hjälp av den lokala JDK:t eller med hjälp av en container. | 
| - 
              Läs mer: 📄Node.js värdtillägg - Hosting: 📦 CommunityToolkit.Aspire. Hosting.NodeJs.Extensions - Client: N/A | En integrering som innehåller några ytterligare tillägg för att köra Node.js program | 
| - 
              Läs mer: 📄 Ollama - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Ollama - Client: 📦Aspire. CommunitToolkit.OllamaSharp | En Aspire komponent som utnyttjar containern Ollama med stöd för att ladda ned en modell vid start. | 
| - 
              Läs mer: 📄 Meilisearch som värd för - Hostning: 📦 CommunityToolkit.Aspire.Hosting.Meilisearch - Client: 📦Aspire. CommunitToolkit.Meilisearch | En Aspire komponent som utnyttjar containern Meilisearch. | 
| - 
              Läs mer: 📄 Rust som värd för - Värd: 📦 CommunityToolkit.Aspire. Hosting.Rust - Client: N/A | En värdintegrering för Rust-appar. | 
| - 
              Läs mer: 📄 SQL Database-projekt som är värdar för - Värd: 📦 CommunityToolkit.Aspire. Hosting.SqlDatabaseProjects - Client: N/A | En Aspire värdintegrering för SQL Database Projects. | 
| - 
              Läs mer: 📄 RavenDB - Värd: 📦 CommunityToolkit.Aspire. Hosting.RavenDB - Client: 📦Aspire. CommunityToolkit.RavenDB.Client | En Aspire komponent som utnyttjar RavenDB-containern . | 
Mer information finns i Aspire Community Toolkit.
 
              
               
              
             
              
             
              
             
              
             
              
             
              
             
              
             
              
             
              
             
              
             
              
             
              
             
              
             
              
             
              
             
              
            