Delen via


Zelfstudie: Een .NET Aspire project met een SQL Server-database implementeren in Azure

In deze handleiding leert u hoe u een ASP.NET Core-app kunt configureren met een SQL Server-database voor implementatie naar Azure. .NET Aspire biedt meerdere SQL Server-integratieconfiguraties waarmee verschillende databaseservices in Azureworden ingericht. U leert het volgende:

  • Een eenvoudige ASP.NET Core-app maken die is geconfigureerd voor het gebruik van de .NET AspireSQL Server-integratie
  • De app configureren voor het inrichten van een Azure SQL Database
  • De app configureren voor het inrichten van een in een container geplaatste SQL Server-database

Notitie

Dit document richt zich specifiek op .NET Aspire configuraties voor het inrichten en implementeren van SQL Server resources in Azure. Ga naar de zelfstudie Azure Container Apps implementatie voor meer informatie over het volledige implementatieproces .NET.NET Aspire.

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.

De voorbeeldoplossing maken

  1. Ga boven in Visual Studionaar Bestand>Nieuwe>Project-.
  2. Zoek in het dialoogvenster naar Aspire en selecteer .NET.NET Aspire - Starter Application. Kies Volgende.
  3. In het scherm Uw nieuwe project configureren:
    • Voer een Projectnaam van AspireSQLin.
    • Laat de rest van de waarden op de standaardwaarden staan en selecteer Volgende.
  4. Op het scherm Aanvullende informatie:
    • Controleer of .NET 9.0 is geselecteerd en kies maken.

Visual Studio maakt een nieuwe ASP.NET Core oplossing die is gestructureerd om .NET Aspirete gebruiken. De oplossing bestaat uit de volgende projecten:

  • AspireSQL.Web: een Blazor project dat afhankelijk is van de standaardinstellingen van de service.
  • AspireSQL.ApiService: een API-project dat afhankelijk is van de standaardinstellingen van de service.
  • AspireSQL.AppHost: een orchestratorproject dat is ontworpen om de verschillende projecten en services van uw app te verbinden en te configureren. Deze orchestrator moet worden ingesteld als het opstartproject.
  • AspireSQL.ServiceDefaults: een gedeelde klassebibliotheek voor het opslaan van configuraties die opnieuw kunnen worden gebruikt in de projecten in uw oplossing.

De app configureren voor SQL Server-implementatie

.NET Aspire biedt twee ingebouwde configuratieopties om SQL Server implementatie op Azurete stroomlijnen:

  • Een in een container geplaatste SQL Server-database inrichten met behulp van Azure Container Apps
  • Een Azure SQL Database-exemplaar inrichten

De .NET.NET Aspire-integratie toevoegen aan de app

Voeg de juiste .NET.NET Aspire-integratie toe aan het project AspireSQL.AppHost voor de gewenste hostingservice.

Voeg het 📦Aspire.Hosting.Azure.Sql NuGet-pakket toe aan het AspireSQL.AppHost project:

dotnet add package Aspire.Hosting.Azure.Sql

Het AppHost-project configureren

Configureer het project AspireSQL.AppHost voor de gewenste SQL-databaseservice.

Vervang de inhoud van het bestand Program.cs in het project AspireSQL.AppHost door de volgende code:

var builder = DistributedApplication.CreateBuilder(args);

var apiService = builder.AddProject<Projects.AspireSql_ApiService>("apiservice");

// Provisions an Azure SQL Database when published
var sqlServer = builder.AddAzureSqlServer("sqlserver")
                       .AddDatabase("sqldb");

builder.AddProject<Projects.AspireSql_Web>("webfrontend")
    .WithExternalHttpEndpoints()
    .WithReference(apiService)
    .WaitFor(apiService);

builder.Build().Run();

De voorgaande code voegt een SQL Server containerresource toe aan uw app en configureert een verbinding met een database met de naam sqldata. De methode PublishAsAzureSqlDatabase zorgt ervoor dat hulpprogramma's zoals de Azure Developer CLI of Visual Studio tijdens het implementatieproces een Azure SQL Database-resource maken.

De app implementeren

Hulpprogramma's zoals de Azure Developer CLI (azd) ondersteunen .NET AspireSQL Server integratieconfiguraties om implementaties te stroomlijnen. azd gebruikt deze instellingen en richt correct geconfigureerde resources voor u in.

De sjabloon initialiseren

  1. Open een nieuw terminalvenster en cd in de AppHost projectmap 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, vraagt azd u om te 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 overschrijvingen.

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 keuzes hebt gemaakt, voert azd het inrichtings- 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 geprovisioneerd.
  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.

Het implementatieproces heeft een Azure SQL Database-resource ingericht vanwege de . AppHost configuratie die u hebt opgegeven.

een schermopname van de geïmplementeerde Azure SQL Database.

Resources opschonen

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.

Zie ook