Freigeben über


Anleitung: Bereitstellen eines .NET Aspire Projekts mit einer SQL Server Datenbank auf Azure

In diesem Tutorial werden Sie lernen, wie Sie eine ASP.NET Core-App mit einer SQL Server-Datenbank für die Bereitstellung auf Azurekonfigurieren. .NET Aspire bietet mehrere SQL Server Integrationskonfigurationen, die unterschiedliche Datenbankdienste in Azurebereitstellen. Hier erfahren Sie, wie Sie:

  • Erstellen Sie eine einfache ASP.NET Core-App, die für die Verwendung der .NET Aspire-SQL Server-Integration konfiguriert ist.
  • Konfigurieren Sie die App zur Bereitstellung einer Azure SQL-Datenbank
  • Konfigurieren der App für die Bereitstellung einer containerisierten SQL Server-Datenbank

Anmerkung

Dieses Dokument konzentriert sich speziell auf .NET Aspire Konfigurationen, um SQL Server Ressourcen in Azurebereitzustellen. Besuchen Sie das Azure Container Apps Bereitstellungs-Lernprogramm, um mehr über den vollständigen .NET.NET Aspire Bereitstellungsprozess zu erfahren.

Voraussetzungen

Um mit .NET.NET Aspirezu arbeiten, benötigen Sie folgendes lokal installiert:

Weitere Informationen finden Sie unter .NET.NET Aspire Setup und Werkzeugensowie .NET.NET Aspire SDK.

Erstellen der Beispiellösung

  1. Navigieren Sie oben im Visual Studiozu Datei>Neu>Projekt.
  2. Suchen Sie im Dialogfeld nach Aspire, und wählen Sie .NET.NET Aspire – Startanwendungaus. Wählen Sie Weiteraus.
  3. Auf dem Bildschirm "Konfigurieren Sie Ihr neues Projekt":
    • Geben Sie einen Projektnamen von AspireSQLein.
    • Behalten Sie den rest der Werte bei ihren Standardwerten bei, und wählen Sie Weiteraus.
  4. Auf dem Bildschirm Ergänzende Informationen:
    • Stellen Sie sicher, dass .NET 9.0 ausgewählt ist, und wählen Sie Erstellenaus.

Visual Studio erstellt eine neue ASP.NET Core Lösung, die darauf ausgelegt ist, .NET Aspirezu verwenden. Die Lösung besteht aus den folgenden Projekten:

  • AspireSQL.Web: Ein Blazor Projekt, das von den Dienststandards abhängt.
  • AspireSQL.ApiService: Ein API-Projekt, das von den Dienststandardeinstellungen abhängt.
  • AspireSQL.AppHost: Ein Orchestratorprojekt, das für die Verbindung und Konfiguration der verschiedenen Projekte und Dienste Ihrer App entwickelt wurde. Der Orchestrator sollte als Startprojekt festgelegt werden.
  • AspireSQL.ServiceDefaults: Eine freigegebene Klassenbibliothek zum Speichern von Konfigurationen, die in allen Projekten in Ihrer Lösung wiederverwendet werden können.

Konfigurieren der App für die SQL Server Bereitstellung

.NET Aspire bietet zwei integrierte Konfigurationsoptionen, um die SQL Server-Bereitstellung für Azurezu vereinfachen.

  • Bereitstellen einer containerisierten SQL Server-Datenbank mithilfe von Azure Container Apps
  • Bereitstellen einer Azure SQL-Datenbankinstanz

Füge die .NET.NET Aspire-Integration zur App hinzu

Fügen Sie die geeignete .NET.NET Aspire-Integration zum AspireSQL.AppHost-Projekt für den gewünschten Hosting-Dienst hinzu.

Fügen Sie das NuGet-Paket 📦Aspire.Hosting.Azure.Sql zum Projekt AspireSQL.AppHost hinzu.

dotnet add package Aspire.Hosting.Azure.Sql

Konfigurieren des AppHost-Projekts

Konfigurieren Sie das AspireSQL.AppHost- Projekt für Ihren gewünschten SQL-Datenbankdienst.

Ersetzen Sie den Inhalt der Datei Program.cs im Projekt AspireSQL.AppHost durch den folgenden 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();

Der vorangehende Code fügt Ihrer App eine SQL Server Containerressource hinzu und konfiguriert eine Verbindung mit einer Datenbank namens sqldata. Die PublishAsAzureSqlDatabase-Methode stellt sicher, dass Tools wie die Azure Developer CLI oder Visual Studio während des Bereitstellungsprozesses eine Azure SQL-Datenbankressource erstellen.

Bereitstellen der App

Tools wie die Azure Developer CLI (azd) unterstützen .NET AspireSQL Server Integrationskonfigurationen, um Bereitstellungen zu vereinfachen. azd verwendet diese Einstellungen zur Bereitstellung ordnungsgemäß konfigurierter Ressourcen für Sie.

Initialisieren der Vorlage

  1. Öffnen Sie ein neues Terminalfenster, und cd Sie in das AppHost- Projektverzeichnis Ihrer .NET.NET Aspire Lösung ein.

  2. Führen Sie den befehl azd init aus, um Ihr Projekt mit azdzu initialisieren, wodurch die lokale Verzeichnisstruktur überprüft und der App-Typ bestimmt wird.

    azd init
    

    Weitere Informationen zum befehl azd init finden Sie unter azd init.

  3. Wählen Sie Code im aktuellen Verzeichnis verwenden aus, wenn azd Sie mit zwei App-Initialisierungsoptionen auffordert.

    ? 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. Nach dem Scannen des Verzeichnisses werden Sie von azd aufgefordert, zu bestätigen, dass es das richtige .NET.NET AspireAppHost- Projekt gefunden hat. Wählen Sie die Option Bestätigen und Fortfahren mit der Initialisierung meiner 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. Geben Sie einen Umgebungsnamen ein, der verwendet wird, um bereitgestellte Ressourcen in Azure zu benennen und verschiedene Umgebungen wie dev und prodzu verwalten.

    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 generiert eine Reihe von Dateien und platziert sie in das Arbeitsverzeichnis. Diese Dateien sind:

  • azure.yaml: Beschreibt die Dienste der App, z. B. das .NET Aspire AppHost-Projekt, und ordnet sie den Azure Ressourcen zu.
  • .azure/config.json: Dies ist die Konfigurationsdatei, die azd darüber informiert, welche die aktuell aktive Umgebung ist.
  • .azure/aspireazddev/.env: Enthält umgebungsspezifische Außerkraftsetzungen.

Bereitstellen der Vorlage

  1. Sobald eine azd Vorlage initialisiert wurde, kann der Bereitstellungs- und Konfigurationsprozess mittels eines einzelnen Befehls aus dem AppHost- Projektverzeichnis mit azd upausgeführt werden.

    azd up
    
  2. Wählen Sie das Abonnement aus, für das Sie bereitstellen möchten, aus der Liste der verfügbaren Optionen:

    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. Wählen Sie den gewünschten Azure Speicherort aus der Liste der verfügbaren Optionen aus:

    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)
    

Nachdem Sie Ihre Auswahl getroffen haben, führt azd den Bereitstellungs- und Implementierungsprozess aus.

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.

Der azd up-Befehl fungiert als Wrapper für die folgenden einzelnen azd-Befehle, um Ihre Ressourcen in einem einzigen Schritt bereitzustellen und zu implementieren.

  1. azd package: Die App-Projekte und deren Abhängigkeiten werden in Container verpackt.
  2. azd provision: Die Azure Ressourcen, die die App benötigt, wurden bereitgestellt.
  3. azd deploy: Die Projekte werden als Container in eine Azure Container-Registry-Instanz übertragen und dann verwendet, um neue Revisionen von Azure Container Apps zu erstellen, in denen der Code gehostet wird.

Wenn die azd up-Stufen abgeschlossen sind, ist Ihre App auf Azureverfügbar, und Sie können das Azure-Portal öffnen, um die Ressourcen zu erkunden. azd gibt auch URLs aus, um direkt auf die bereitgestellten Apps zuzugreifen.

Der Bereitstellungsprozess hat aufgrund der von Ihnen bereitgestellten Azure-Konfiguration eine SQL-Datenbankressource bereitgestellt.

Screenshot der bereitgestellten Azure SQL-Datenbank.

Bereinigen von Ressourcen

Führen Sie den folgenden Azure CLI-Befehl aus, um die Ressourcengruppe zu löschen, wenn Sie die von Ihnen erstellten Azure Ressourcen nicht mehr benötigen. Durch das Löschen der Ressourcengruppe werden auch die darin enthaltenen Ressourcen gelöscht.

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

Weitere Informationen finden Sie unter Bereinigung von Ressourcen in Azure.

Siehe auch