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 innehåller verktyg, mallar och paket för att skapa observerbara, produktionsklara distribuerade appar. I mitten finns appmodellen – en kod först, en enda sanningskälla som definierar appens tjänster, resurser och anslutningar.
Aspireger dig en enhetlig verktygskedja: starta och felsöka hela appen lokalt med ett kommando och sedan distribuera var som helst –Kubernetes molnet eller dina egna servrar – med samma sammansättning.
Utökningsbarhet är ett kärnfokus. AspireAPI:er är utformade så att du kan anpassa plattformen till din infrastruktur, dina tjänster och arbetsflöden.
Viktiga funktioner
- AppHost-orkestrering: Definiera tjänster, beroenden och konfiguration i kod.
- Omfattande integreringar: NuGet-paket för populära tjänster med standardiserade gränssnitt.
- Konsekventa verktyg: Projektmallar och upplevelser för Visual Studio, VS Code och CLI.
Den officiella supportinformationen finns i supportpolicynAspire.
The AppHost
Aspire's AppHost är den plats där du definierar appens tjänster och beroenden i kod – inga komplexa konfigurationsfiler krävs. AppHost tillhandahåller orkestrering för din lokala utvecklingsmiljö genom att förenkla hanteringen av tjänstidentifiering, miljövariabler och containerkonfigurationer.
Föreställ dig en vanlig arkitektur med tre nivåer: en klientdel som är beroende av ett API som ansluter till en databas. I Aspirerepresenteras den här topologin i AppHost enligt följande kod:
var builder = DistributedApplication.CreateBuilder(args);
// Add database service
var postgres = builder.AddPostgres("db")
.AddDatabase("appdata")
.WithDataVolume();
// Add API service and reference dependencies
var api = builder.AddProject<Projects.ApiService>("api")
.WithReference(postgres)
.WaitFor(postgres);
// Add frontend service and reference the API
var frontend = builder.AddProject<Projects.Frontend>("frontend")
.WithReference(api);
builder.Build().Run();
AppHost hjälper till med följande problem:
- Appsammansättning: Ange de projekt, containrar, körbara filer och molnresurser som utgör ditt program.
- Tjänstidentifiering och hantering av anslutningssträngar: Mata automatiskt in rätt anslutningssträngar och nätverkskonfigurationer.
Det är viktigt att notera att Aspires orkestrering har fokus på att förbättra den lokala utvecklingsupplevelsen. Den är inte avsedd att ersätta produktionssystem som Kubernetes, utan ger snarare abstraktioner som eliminerar implementeringsinformation på låg nivå under utvecklingen.
Mer information finns i Aspire översikt över orkestrering.
Aspire integreringar
Aspire gör det enkelt att definiera allt som din app behöver med hjälp av integreringar – NuGet-paket som är utformade för att förenkla anslutningar till populära tjänster och plattformar. Varje integrering hanterar konfigurationen av molnresurser och tillhandahåller standardiserade mönster för hälsokontroller, telemetri och konfiguration.
Resurser som du kan integrera är:
- AI-tjänster: Stora språkmodeller, AI-slutpunkter och kognitiva tjänster.
- Cacheminnen: Redis, minnesinterna cacheminnen och distribuerade cachelagringslösningar.
- Containers: Docker containers för databaser, meddelandebrokers och andra tjänster.
- Databaser: SQL Server, PostgreSQL, MySQL, MongoDBoch andra datalager.
- Körbara filer: Konsolprogram, skript och bakgrundstjänster.
- Ramverk: Webbprogram, API:er och mikrotjänster som skapats med olika ramverk.
- Messaging Services: Azure Service Bus, RabbitMQ, Kafka och andra meddelandesystem.
- Projekt: .NET projekt, Node.js program, Python tjänster med mera.
- Lagring: Blob Storage, filsystem och molnlagringstjänster.
Integreringar är dubbelriktade: "hosting"-integreringar representerar den tjänst som du ansluter till, medan "klientintegreringar" representerar konsumenten av den tjänsten.
Tip
Under ytan kan en värdtjänstintegration representera en container, en körbar fil eller bara C#-kod som konfigurerar resurser utan att köra en separat process. Du kan lägga till valfri containeravbildning, kodbas, skript eller molnresurs till din AppHost. Att skapa återanvändbara Aspire integreringar liknar att skapa återanvändbara komponenter för dina appar.
Övervaka och felsöka med Aspire instrumentpanelen
Aspire innehåller en kraftfull instrumentpanel för utvecklare som ger dig insyn i din distribuerade app i realtid. På instrumentpanelen kan du granska resurser, visa loggar, spårningar och mått och hantera appens tjänster – allt från ett enda användargränssnitt.
När du kör din Aspire app startas instrumentpanelen automatiskt. Du kan:
- Se alla appens resurser och deras status.
- Analysera loggar, spår och mått för alla tjänster.
- Starta, stoppa eller starta om resurser direkt från instrumentpanelen.
- Visualisera beroenden och felsöka problem snabbare.
Instrumentpanelen är tillgänglig både som en del av en Aspire lösning eller som ett fristående verktyg för alla appar som genererar OpenTelemetry data.
Läs mer i översikten över instrumentpanelen eller gå djupare in på instrumentpanelsfunktioner och användning.
Från utveckling till distribution
När du skapar din distribuerade app i Aspire's AppHost, definierar du inte bara tjänster för lokal utveckling – du konfigurerar grunden för distributionen. Samma sammansättning som du använder för att köra och felsöka lokalt blir skissen för produktionsdistribution, vilket säkerställer konsekvens från utveckling till produktion.
Aspire tillhandahåller projektmallar och verktygsupplevelser för dina favoritmiljöer för utveckling. De här mallarna innehåller bestämda standardvärden med mallkod för hälsokontroller, loggning och telemetri. Mallarna innehåller även tjänststandarder som hanterar vanliga konfigurationer:
builder.AddServiceDefaults();
När den här metoden läggs till i C#-koden konfigureras:
- OpenTelemetry: Formaterad loggning, körningsmått och spårning för ASPCore, gRPC och HTTP.
- Hälsokontroller: Standardslutpunkter som verktyg kan köra frågor mot för att övervaka din app.
- Tjänstidentifiering: Aktiverar tjänstidentifiering och konfigurerar HttpClient därefter.
Mer information finns i Aspire standardinställningar för tjänsten.
Fundera på hur arkitekturexemplet med tre nivåer kan distribueras i olika miljöer:
| Resource | Lokal utveckling | Azure | AWS |
|---|---|---|---|
| Frontend | npm run |
Azure Container Apps | Amazon Elastic Container Service |
| API-tjänst | dotnet run |
Azure Container Apps | AWS Lambda |
| Database | docker.io/library/postgres |
Azure Databas för PostgreSQL | Amazon Relational Database Service |
Tip
Det här är bara några exempel på hur du kan distribuera Aspire appar.
AspireDistributionsfunktionerna är flexibla och stör inte dina befintliga arbetsflöden. Du kan fortsätta att använda de verktyg och tjänster du föredrar samtidigt som du drar nytta av den konsekventa apptopologi som definierats i din AppHost.
Mer information finns i Distribuera Aspire appar.