Dela via


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:

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, apteller direkt via curl. Information om hur du installerar azdfinns i Installera Azure Developer CLI.

Initiera mallen

  1. Öppna ett nytt terminalfönster och cd i projektkatalogen AppHost för din .NET.NET Aspire lösning.

  2. Kör kommandot azd init för att initiera projektet med azd, 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.

  3. 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
    
  4. 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
    
  5. Ange ett miljönamn som används för att namnge etablerade resurser i Azure och hantera olika miljöer, till exempel dev och prod.

    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

  1. 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
    
  2. 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)
    
  3. 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:

  1. azd package: Appprojekten och deras beroenden paketeras i containrar.
  2. azd provision: De Azure resurser som appen behöver förbereds.
  3. 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.

En skärmbild av resursgruppen för .NET Aspire-projektet i Azure-portalen.

Klicka på web Container App för att öppna den i portalen.

En skärmbild av .NET Aspire-projektets klientdel i Azure-portalen.

Klicka på länken applikations-URL för att öppna gränssnittet i webbläsaren.

En skärmbild av .NET.NET Aspire projektets användargränssnitt 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.