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:
- .NET 8,0 of .NET 9,0
- Een OCI-compatibele containerruntime, zoals:
- Docker Desktop of Podman. Zie Container runtimevoor meer informatie.
- Een IDE (Integrated Developer Environment) of code-editor, zoals:
- Visual Studio 2022 versie 17.9 of hoger (optioneel)
-
Visual Studio Code (optioneel)
- C# Dev Kit: extensie- (optioneel)
- JetBrains Rider met .NET.NET Aspire plug-in (optioneel)
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
, apt
of rechtstreeks via curl
. Om azd
te installeren, zie voor het installeren van Azure Developer CLI.
De sjabloon initialiseren
Open een nieuw terminalvenster en voer
cd
uit in de projectmap AppHost van uw .NET.NET Aspire-oplossing.Voer de opdracht
azd init
uit om uw project te initialiseren metazd
, waarmee de lokale mapstructuur wordt gecontroleerd en het type app wordt bepaald.azd init
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
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
Voer een omgevingsnaam in die wordt gebruikt om ingerichte resources in Azure een naam te geven en verschillende omgevingen zoals
dev
enprod
te 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
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
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)
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:
-
azd package
: de app-projecten en de bijbehorende afhankelijkheden worden verpakt in containers. -
azd provision
: de Azure resources die de app nodig heeft, worden ingericht. -
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.
Klik op de web
Container App om deze te openen in de portal.
Klik op de applicatie-URL link om de frontend in de browser te openen.
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.