Delen via


Een .NET Aspire-project implementeren in Azure Container Apps

.NET .NET Aspire projecten zijn ontworpen voor uitvoering in containeromgevingen. Azure Container Apps is een volledig beheerde omgeving waarmee u microservices en toepassingen in containers kunt uitvoeren op een serverloos platform. In dit artikel wordt uitgelegd hoe u een nieuwe .NET Aspire-oplossing maakt en deze implementeert in Microsoft Azure Container Apps met behulp van de Azure Developer CLI (azd). U leert hoe u de volgende taken uitvoert:

  • Een Azure-resourcegroep en Container Registry inrichten
  • Publiceer de .NET Aspire-projecten als containerafbeeldingen in de Azure Container Registry
  • Een Redis-container inrichten in Azure
  • De apps implementeren in een Azure Container Apps-omgeving
  • Toepassingsconsolelogboeken weergeven om toepassingsproblemen op te lossen

Voorwaarden

Als u met .NET.NET Aspirewilt werken, hebt u het volgende lokaal geïnstalleerd:

Zie .NET.NET Aspire setup en hulpprogramma'sen .NET.NET Aspire SDK-voor meer informatie.

Als alternatief voor deze zelfstudie en voor een uitgebreidere handleiding raadpleegt u Een .NET Aspire-project implementeren voor Azure Container Apps met behulp van azd (uitgebreide handleiding).

.NET .NET Aspire projecten implementeren met azd

Met .NET Aspire en Azure Container Apps (ACA) hebt u een geweldig hostingscenario voor het bouwen van uw cloudeigen apps met .NET. We hebben een aantal geweldige nieuwe functies ingebouwd in de Azure Developer CLI (azd), specifiek voor de ontwikkeling en implementatie van .NET Aspire naar Azure, om een wrijvingsvrije ervaring te bieden. U kunt nog steeds de Azure CLI- en/of Bicep-opties gebruiken wanneer u een gedetailleerd controleniveau nodig hebt over uw implementaties. Maar voor nieuwe projecten vindt u geen eenvoudiger pad naar succes voor het verkrijgen van een nieuwe microservicetopologie die in de cloud is geïmplementeerd.

Een .NET.NET Aspire-project maken

In dit artikel wordt ervan uitgegaan dat u een .NET.NET Aspire project hebt gemaakt op basis van de sjabloon .NET.NET Aspire Starter Application. Zie quickstart: Uw eerste .NET.NET Aspire project bouwenvoor meer informatie.

Naamgeving van middelen

Wanneer u nieuwe Azure resources maakt, is het belangrijk om de naamgevingsvereisten te volgen. Voor Azure Container Appsmoet de naam 2-32 tekens lang zijn en bestaan uit kleine letters, cijfers en afbreekstreepjes. De naam moet beginnen met een letter en eindigen met een alfanumerieke teken.

Zie Naamgevingsregels en -beperkingen voor Azure resourcesvoor meer informatie.

De Azure Developer CLI installeren

Het proces voor het installeren van azd varieert op basis van uw besturingssysteem, maar het is algemeen beschikbaar via winget, brew, aptof rechtstreeks via curl. Om azdte installeren, zie voor het installeren van Azure Developer CLI.

De sjabloon initialiseren

  1. Open een nieuw terminalvenster en voer cd uit in de projectmap AppHost van uw .NET.NET Aspire-oplossing.

  2. Voer de opdracht azd init uit om uw project te initialiseren met azd, waarmee de lokale mapstructuur wordt gecontroleerd en het type app wordt bepaald.

    azd init
    

    Zie azd initvoor meer informatie over de opdracht .

  3. Selecteer Code gebruiken in de huidige map wanneer azd u om twee initialisatieopties voor apps vraagt.

    ? 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. Nadat u de map hebt gescand, moet u met azd bevestigen dat het juiste .NET.NET AspireAppHost--project is gevonden. Selecteer de optie Bevestigen en ga verder met het initialiseren van mijn app optie.

    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. Voer een omgevingsnaam in die wordt gebruikt om ingerichte resources in Azure een naam te geven en verschillende omgevingen zoals dev en prodte beheren.

    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 genereert een aantal bestanden en plaatst deze in de werkmap. Deze bestanden zijn:

  • azure.yaml-: beschrijft de services van de app, zoals .NET Aspire AppHost-project, en wijst deze toe aan Azure resources.
  • .azure/config.json: configuratiebestand dat azd informeert wat de huidige actieve omgeving is.
  • .azure/aspireazddev/.env: Bevat omgevingsspecifieke overrulingen.

De sjabloon implementeren

  1. Zodra een azd-sjabloon is geïnitialiseerd, kan het inrichtings- en implementatieproces worden uitgevoerd als één opdracht vanuit de projectmap AppHost met behulp van azd up:

    azd up
    
  2. Selecteer het abonnement waarnaar u wilt implementeren in de lijst met beschikbare opties:

    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. Selecteer de gewenste Azure locatie die u wilt gebruiken in de lijst met beschikbare opties:

    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)
    

Nadat u uw selecties hebt gemaakt, voert azd het voorbereiding- en implementatieproces uit.

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.

De opdracht azd up fungeert als wrapper voor de volgende afzonderlijke azd opdrachten voor het inrichten en implementeren van uw resources in één stap:

  1. azd package: de app-projecten en de bijbehorende afhankelijkheden worden verpakt in containers.
  2. azd provision: de Azure resources die de app nodig heeft, worden ingericht.
  3. azd deploy: de projecten worden gepusht als containers naar een Azure Container Registry-exemplaar en vervolgens gebruikt voor het maken van nieuwe revisies van Azure Container Apps waarin de code wordt gehost.

Wanneer de azd up fasen zijn voltooid, is uw app beschikbaar op Azureen kunt u de Azure-portal openen om de resources te verkennen. azd voert ook URL's uit om rechtstreeks toegang te krijgen tot de geïmplementeerde apps.

De geïmplementeerde app testen

Nu de app is ingericht en geïmplementeerd, kunt u naar de Azure-portal bladeren. In de resourcegroep waarin u de app hebt geïmplementeerd, ziet u de drie container-apps en andere resources.

Een schermopname van de resourcegroep van het .NET Aspire project in de Azure-portal.

Klik op de web Container App om deze te openen in de portal.

Een schermopname van de front-end van het .NET Aspire project in de Azure-portal.

Klik op de applicatie-URL link om de frontend in de browser te openen.

Een schermopname van de front-end van het .NET.NET Aspire project in de browser.

Wanneer u op het knooppunt 'Weer' in de navigatiebalk klikt, roept de front-end-web container-app de apiservice container-app aan om gegevens op te halen. De uitvoer van de frontend wordt in de cache opgeslagen met behulp van de redis container-app en de .NET AspireRedis Output Caching-integratie. Wanneer u de front-end een paar keer vernieuwt, ziet u dat de weergegevens in de cache worden opgeslagen. Deze wordt na een paar seconden bijgewerkt.

Het .NET.NET Aspire-dashboard implementeren

U kunt het .NET.NET Aspire dashboard implementeren als onderdeel van uw gehoste app. Deze functie wordt nu volledig ondersteund. Bij de implementatie worden in de azd-uitvoerlogboeken een extra URL naar het geïmplementeerde dashboard afgedrukt.

U kunt azd monitor uitvoeren om het dashboard automatisch te starten.

azd monitor

Middelen opruimen

Voer de volgende Azure CLI-opdracht uit om de resourcegroep te verwijderen wanneer u de Azure resources die u hebt gemaakt niet meer nodig hebt. Als u de resourcegroep verwijdert, worden ook de resources in de resourcegroep verwijderd.

az group delete --name <your-resource-group-name>

Zie Resources opschonen in Azurevoor meer informatie.