Distribuera ett .NET Aspire projekt till Azure Container Apps
.NET
.NET Aspire projekt är utformade för att köras i containerbaserade miljöer.
Azure Container Apps är en fullständigt hanterad miljö som gör att du kan köra mikrotjänster och containerbaserade program på en serverlös plattform. Den här artikeln beskriver hur du skapar en ny .NET Aspire lösning och distribuerar den till Microsoft Azure Container Apps med hjälp av Azure Developer CLI (azd
). Du får lära dig hur du utför följande uppgifter:
- Etablera en Azure resursgrupp och containerregister
- Publicera .NET Aspire projekt som containeravbildningar i Azure Container Registry
- Etablera en Redis-behållare i Azure
- Distribuera apparna till en Azure Container Apps miljö
- Visa programkonsolloggar för att felsöka programproblem
Förutsättningar
Om du vill arbeta med .NET.NET Aspirebehöver du följande installerat lokalt:
- .NET 8,0 eller .NET 9,0
- En OCI-kompatibel containerkörtidsmiljö, till exempel:
- Docker Skrivbord eller Podman. Mer information finns i Container Runtime.
- En IDE (Integrated Developer Environment) eller kodredigerare, till exempel:
- Visual Studio 2022 version 17.9 eller senare (valfritt)
-
Visual Studio Code (valfritt)
- C# Dev Kit: Tillägg (valfritt)
- JetBrains Rider med .NET.NET Aspire insticksprogram (valfritt)
Mer information finns i .NET.NET Aspire installation och verktygoch .NET.NET Aspire SDK.
Ett alternativ till denna handledning, och för en mer djupgående guide, se Distribuera ett .NET Aspire-projekt till Azure Container Apps med hjälp av azd
(djupgående guide).
Genomföra .NET.NET Aspire projekt med hjälp av azd
Med .NET Aspire och Azure Container Apps (ACA) har du ett bra värdscenario för att skapa dina molnbaserade appar med .NET. Vi har byggt in några fantastiska nya funktioner i Azure Developer CLI (azd
) som är specifika för att göra .NET Aspire utveckling och distribution till Azure en friktionsfri upplevelse. Du kan fortfarande använda alternativen Azure CLI och/eller Bicep när du behöver en detaljerad kontrollnivå över dina distributioner. Men för nya projekt hittar du ingen enklare väg till framgång för att få en ny mikrotjänsttopologi distribuerad till molnet.
Skapa ett .NET.NET Aspire projekt
Som utgångspunkt förutsätter den här artikeln att du har skapat ett .NET.NET Aspire projekt från mallen .NET.NET Aspire Starter Application. Mer information finns i Snabbstart: Skapa ditt första .NET.NET Aspire projekt.
Namngivning av resurser
När du skapar nya Azure resurser är det viktigt att du följer namngivningskraven. För Azure Container Appsmåste namnet vara 2–32 tecken långt och bestå av gemener, siffror och bindestreck. Namnet måste börja med en bokstav och sluta med ett alfanumeriskt tecken.
Mer information finns i Namngivningsregler och begränsningar för Azure resurser.
Installera Azure Developer CLI
Processen för att installera azd
varierar beroende på ditt operativsystem, men den är allmänt tillgänglig via winget
, brew
, apt
eller direkt via curl
. Information om hur du installerar azd
finns i Installera Azure Developer CLI.
Initiera mallen
Öppna ett nytt terminalfönster och
cd
i projektkatalogen AppHost för din .NET.NET Aspire lösning.Kör kommandot
azd init
för att initiera projektet medazd
, som kommer att granska den lokala katalogstrukturen och fastställa typen av app.azd init
Mer information om kommandot
azd init
finns i azd init.Välj Använd kod i den aktuella katalogen när
azd
uppmanar dig med två alternativ för appinitiering.? How do you want to initialize your app? [Use arrows to move, type to filter] > Use code in the current directory Select a template
När du har genomsökt katalogen uppmanar
azd
dig att bekräfta att den hittade rätt .NET.NET AspireAppHost- projekt. Välj alternativet Bekräfta och fortsätt initiera min app.Detected services: .NET (Aspire) Detected in: D:\source\repos\AspireSample\AspireSample.AppHost\AspireSample.AppHost.csproj azd will generate the files necessary to host your app on Azure using Azure Container Apps. ? Select an option [Use arrows to move, type to filter] > Confirm and continue initializing my app Cancel and exit
Ange ett miljönamn som används för att namnge etablerade resurser i Azure och hantera olika miljöer, till exempel
dev
ochprod
.Generating files to run your app on Azure: (✓) Done: Generating ./azure.yaml (✓) Done: Generating ./next-steps.md SUCCESS: Your app is ready for the cloud! You can provision and deploy your app to Azure by running the azd up command in this directory. For more information on configuring your app, see ./next-steps.md
azd
genererar ett antal filer och placerar dem i arbetskatalogen. Dessa filer är:
- azure.yaml: Beskriver tjänsterna i appen, till exempel .NET Aspire AppHost-projekt, och mappar dem till Azure resurser.
-
.azure/config.json: Konfigurationsfil som informerar
azd
vad den aktuella aktiva miljön är. - .azure/aspireazddev/.env: Innehåller miljöspecifika åsidosättningar.
Distribuera mallen
När en
azd
mall har initierats kan etablerings- och distributionsprocessen köras som ett enda kommando från projektkatalogen AppHost med azd up:azd up
Välj den prenumeration som du vill distribuera till i listan över tillgängliga alternativ:
Select an Azure Subscription to use: [Use arrows to move, type to filter] 1. SampleSubscription01 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx) 2. SamepleSubscription02 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx)
Välj önskad Azure plats som ska användas i listan över tillgängliga alternativ:
Select an Azure location to use: [Use arrows to move, type to filter] 42. (US) Central US (centralus) 43. (US) East US (eastus) > 44. (US) East US 2 (eastus2) 46. (US) North Central US (northcentralus) 47. (US) South Central US (southcentralus)
När du har valt kör azd
etablerings- och distributionsprocessen.
By default, a service can only be reached from inside the Azure Container Apps environment it is running in. Selecting a service here will also allow it to be reached from the Internet.
? Select which services to expose to the Internet webfrontend
? Select an Azure Subscription to use: 1. <YOUR SUBSCRIPTION>
? Select an Azure location to use: 1. <YOUR LOCATION>
Packaging services (azd package)
Provisioning Azure resources (azd provision)
Provisioning Azure resources can take some time.
Subscription: <YOUR SUBSCRIPTION>
Location: <YOUR LOCATION>
You can view detailed progress in the Azure Portal:
<LINK TO DEPLOYMENT>
(✓) Done: Resource group: <YOUR RESOURCE GROUP>
(✓) Done: Container Registry: <ID>
(✓) Done: Log Analytics workspace: <ID>
(✓) Done: Container Apps Environment: <ID>
SUCCESS: Your application was provisioned in Azure in 1 minute 13 seconds.
You can view the resources created under the resource group <YOUR RESOURCE GROUP> in Azure Portal:
<LINK TO RESOURCE GROUP OVERVIEW>
Deploying services (azd deploy)
(✓) Done: Deploying service apiservice
- Endpoint: <YOUR UNIQUE apiservice APP>.azurecontainerapps.io/
(✓) Done: Deploying service webfrontend
- Endpoint: <YOUR UNIQUE webfrontend APP>.azurecontainerapps.io/
Aspire Dashboard: <LINK TO DEPLOYED .NET ASPIRE DASHBOARD>
SUCCESS: Your up workflow to provision and deploy to Azure completed in 3 minutes 50 seconds.
Kommandot azd up
fungerar som omslutning för följande enskilda azd
kommandon för att etablera och distribuera dina resurser i ett enda steg:
-
azd package
: Appprojekten och deras beroenden paketeras i containrar. -
azd provision
: De Azure resurser som appen behöver förbereds. -
azd deploy
: Projekten skickas som containrar till en Azure Container Registry-instans och används sedan för att skapa nya revisioner av Azure Container Apps där koden ska finnas.
När azd up
faserna är klara blir appen tillgänglig på Azureoch du kan öppna Azure-portalen för att utforska resurserna.
azd
matar också ut URL:er för att komma åt de distribuerade apparna direkt.
Testa den driftsatta appen
Nu när appen har etablerats och distribuerats kan du gå till Azure-portalen. I resursgruppen där du distribuerade appen visas de tre containerapparna och andra resurser.
Klicka på web
Container App för att öppna den i portalen.
Klicka på länken applikations-URL för att öppna gränssnittet i webbläsaren.
När du klickar på noden "Väder" i navigeringsfältet gör frontend-appen i web
-containern ett anrop till apiservice
-containerappen för att hämta data. Frontendens utdata kommer att cachelagras med redis
-containerappen och .NET AspireRedis-integration för cachelagring av utdata. När du uppdaterar klientdelen några gånger ser du att väderdata cachelagras. Den uppdateras efter några sekunder.
Distribuera instrumentpanelen för .NET.NET Aspire
Du kan implementera .NET.NET Aspire instrumentpanelen som en del av din hostade applikation. Den här funktionen stöds nu fullt ut. När du distribuerar skriver utdata från azd-loggarna ut ytterligare en URL till den distribuerade kontrollpanelen.
Du kan köra azd monitor
för att automatiskt starta instrumentpanelen.
azd monitor
Rensa resurser
Kör följande Azure CLI-kommando för att ta bort resursgruppen när du inte längre behöver de Azure resurser som du skapade. Om du tar bort resursgruppen tas även de resurser som ingår i den bort.
az group delete --name <your-resource-group-name>
Mer information finns i Rensa resurser i Azure.
.NET Aspire