Schnellstart: Erstellen einer ASP.NET Core-App mit Azure App Configuration

In dieser Schnellstartanleitung verwenden Sie Azure App Configuration, um die Speicherung und Verwaltung von App-Einstellungen für eine ASP.NET Core-App zu externalisieren. Mit ASP.NET Core wird ein Konfigurationsobjekt, das auf nur einem Schlüssel-Wert-Paar basiert, mit Einstellungen einer oder mehrerer Konfigurationsanbieter erstellt. App Configuration bietet eine .NET-Konfigurationsanbieterbibliothek. Daher können Sie App Configuration als zusätzliche Konfigurationsquelle für Ihre App verwenden. Wenn Sie über eine vorhandene App verfügen, müssen Sie nur einige kleine Änderungen an Ihrem App-Startcode vornehmen, um mit der Verwendung von App Configuration zu beginnen.

Voraussetzungen

Tipp

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Befehlszeilenanweisungen in diesem Artikel ausführen können. Für sie sind allgemeine Azure-Tools einschließlich des .NET SDK vorinstalliert. Wenn Sie bei Ihrem Azure-Abonnement angemeldet sind, starten Sie Azure Cloud Shell über shell.azure.com. Weitere Informationen zu Azure Cloud Shell finden Sie in der Dokumentation.

Schlüsselwerte hinzufügen

Fügen Sie dem App Configuration-Speicher die folgenden Schlüsselwerte hinzu, und belassen Sie Bezeichnung und Inhaltstyp bei ihren Standardwerten. Weitere Informationen zum Hinzufügen von Schlüssel-Wert-Paaren zu einem Speicher mithilfe des Azure-Portals oder der CLI finden Sie unter Erstellen eines Schlüssel-Wert-Paars.

Schlüssel Wert
TestApp:Settings:BackgroundColor weiß
TestApp:Settings:FontColor schwarz
TestApp:Settings:FontSize 24
TestApp:Settings:Message Daten aus Azure App Configuration

Erstellen einer ASP.NET Core-Web-App

Verwenden Sie die .NET-Befehlszeilenschnittstelle (Command Line Interface, CLI), um ein neues ASP.NET Core-Web-App-Projekt zu erstellen. Die Azure Cloud Shell stellt Ihnen diese Tools zur Verfügung. Sie sind auch auf der Windows-, macOS- und Linux-Plattform verfügbar.

Führen Sie den folgenden Befehl aus, um eine ASP.NET Core-Web-App in einem neuen Ordner TestAppConfig zu erstellen:

dotnet new webapp --output TestAppConfig --framework net6.0

Herstellen einer Verbindung mit dem App Configuration-Speicher

  1. Navigieren Sie zum Verzeichnis TestAppConfig des Projekts, und führen Sie den folgenden Befehl aus, um einen Verweis auf das NuGet-Paket Microsoft.Azure.AppConfiguration.AspNetCore hinzuzufügen:

    dotnet add package Microsoft.Azure.AppConfiguration.AspNetCore
    
  2. Führen Sie den folgenden Befehl aus. Der Befehl verwendet den Geheimnis-Manager, um ein Geheimnis namens ConnectionStrings:AppConfig zu speichern, das die Verbindungszeichenfolge für Ihren App Configuration-Speicher speichert. Ersetzen Sie den Platzhalterwert <your_connection_string> durch die Verbindungszeichenfolge Ihres App Configuration-Speichers. Die Verbindungszeichenfolge finden Sie im Azure-Portal unter Zugriffsschlüssel Ihres App Configuration-Speichers.

    dotnet user-secrets init
    dotnet user-secrets set ConnectionStrings:AppConfig "<your_connection_string>"
    

    Tipp

    Einige Shells kürzen die Verbindungszeichenfolge, sofern Sie nicht in Anführungszeichen eingeschlossen ist. Stellen Sie sicher, dass die Ausgabe des dotnet user-secrets list-Befehls die gesamte Verbindungszeichenfolge anzeigt. Wenn dies nicht der Fall ist, führen Sie den Befehl erneut aus und schließen die Verbindungszeichenfolge in Anführungszeichen ein.

    Der Geheimnis-Manager speichert den geheimen Schlüssel außerhalb Ihrer Projektstruktur. Dadurch wird die versehentliche Freigabe von Geheimnissen innerhalb des Quellcodes verhindert. Er wird nur verwendet, um die Web-App lokal zu testen. Wenn die App in Azure-Diensten wie App Service bereitgestellt wird, verwenden Sie die Verbindungszeichenfolgen, Anwendungseinstellungen oder Umgebungsvariablen, um die Verbindungszeichenfolge zu speichern. Alternativ können Sie eine Verbindung mit App Configuration mithilfe verwalteter Identitäten oder Ihrer anderen Microsoft Entra-Identitäten herstellen, um Verbindungszeichenfolgen ganz zu vermeiden.

  3. Öffnen Sie Program.cs, und fügen Sie Azure App Configuration als zusätzliche Konfigurationsquelle hinzu, indem Sie die Methode AddAzureAppConfiguration aufrufen.

    var builder = WebApplication.CreateBuilder(args);
    
    // Retrieve the connection string
    string connectionString = builder.Configuration.GetConnectionString("AppConfig");
    
    // Load configuration from Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(connectionString);
    
    // The rest of existing code in program.cs
    // ... ...
    

    Dieser Code stellt mithilfe einer Verbindungszeichenfolge eine Verbindung mit Ihrem App Configuration-Speicher her und lädt alle Schlüsselwerte ohne Bezeichnungen. Weitere Informationen zum App Configuration-Anbieter finden Sie in der API-Referenz für App Configuration-Anbieter.

Lesen aus dem App Configuration-Speicher

In diesem Beispiel aktualisieren Sie eine Webseite, um ihren Inhalt mithilfe der Einstellungen anzuzeigen, die Sie in Ihrem App Configuration-Speicher konfiguriert haben.

  1. Fügen Sie die Datei Settings.cs im Stammverzeichnis Ihres Projekts hinzu. Sie definiert eine stark typisierte Settings-Klasse für die von Ihnen verwendete Konfiguration. Ersetzen Sie den Namespace durch den Namen Ihres Projekts.

    namespace TestAppConfig
    {
        public class Settings
        {
            public string BackgroundColor { get; set; }
            public long FontSize { get; set; }
            public string FontColor { get; set; }
            public string Message { get; set; }
        }
    }
    
  2. Binden Sie den Abschnitt TestApp:Settings in der Konfiguration an das Settings-Objekt.

    Aktualisieren Sie Program.cs mit dem folgenden Code, und fügen Sie den TestAppConfig-Namespace am Anfang der Datei hinzu.

    using TestAppConfig;
    
    // Existing code in Program.cs
    // ... ...
    
    builder.Services.AddRazorPages();
    
    // Bind configuration "TestApp:Settings" section to the Settings object
    builder.Services.Configure<Settings>(builder.Configuration.GetSection("TestApp:Settings"));
    
    var app = builder.Build();
    
    // The rest of existing code in program.cs
    // ... ...
    
  3. Öffnen Sie Index.cshtml.cs im Verzeichnis Pages, und aktualisieren Sie die IndexModel-Klasse mit dem folgenden Code. Fügen Sie am Anfang der Datei den Namespace using Microsoft.Extensions.Options hinzu, sofern noch nicht vorhanden.

    public class IndexModel : PageModel
    {
        private readonly ILogger<IndexModel> _logger;
    
        public Settings Settings { get; }
    
        public IndexModel(IOptionsSnapshot<Settings> options, ILogger<IndexModel> logger)
        {
            Settings = options.Value;
            _logger = logger;
        }
    }
    
  4. Öffnen Sie Index.cshtml im Verzeichnis Pages, und aktualisieren Sie den Inhalt mit dem folgenden Code:

    @page
    @model IndexModel
    @{
        ViewData["Title"] = "Home page";
    }
    
    <style>
        body {
            background-color: @Model.Settings.BackgroundColor;
        }
    
        h1 {
            color: @Model.Settings.FontColor;
            font-size: @(Model.Settings.FontSize)px;
        }
    </style>
    
    <h1>@Model.Settings.Message</h1>
    

Lokales Erstellen und Ausführen der App

  1. Um die App mit der .NET-CLI zu erstellen, navigieren Sie zum Stammverzeichnis Ihres Projekts. Führen Sie den folgenden Befehl in der Befehlsshell aus:

    dotnet build
    
  2. Führen Sie nach erfolgreicher Erstellung den folgenden Befehl aus, um die Web-App lokal auszuführen:

    dotnet run
    
  3. Die Ausgabe des dotnet run-Befehls enthält zwei URLs. Öffnen Sie einen Browser, und navigieren Sie zu einer dieser URLs, um auf Ihre Anwendung zuzugreifen. Beispiel: https://localhost:5001.

    Wenn Sie in der Azure Cloud Shell arbeiten, wählen Sie die Schaltfläche Webvorschau und dann Konfigurieren aus. Wenn Sie zum Konfigurieren des Ports für die Vorschau aufgefordert werden, geben Sie 5000 ein, und wählen Sie Öffnen und durchsuchen aus.

    Screenshot of Azure Cloud Shell. Locate Web Preview.

    Die Webseite sieht wie folgt aus: Screenshot of the browser.Launching quickstart app locally.

Bereinigen von Ressourcen

Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr verwenden möchten, löschen Sie die erstellte Ressourcengruppe, um Kosten zu vermeiden.

Wichtig

Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen für diesen Artikel in einer Ressourcengruppe erstellt haben, die andere beizubehaltende Ressourcen enthält, löschen Sie die Ressourcen einzeln über den entsprechenden Bereich, statt die Ressourcengruppe zu löschen.

  1. Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
  2. Geben Sie im Feld Nach Name filtern den Namen Ihrer Ressourcengruppe ein.
  3. Wählen Sie in der Ergebnisliste den Ressourcengruppennamen aus, um eine Übersicht anzuzeigen.
  4. Wählen Sie die Option Ressourcengruppe löschen.
  5. Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie zur Bestätigung den Namen Ihrer Ressourcengruppe ein, und klicken Sie auf Löschen.

Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.

Nächste Schritte

In dieser Schnellstartanleitung führen Sie die folgenden Schritte aus:

  • Bereitstellen eines neuen App Configuration-Speichers.
  • Herstellen einer Verbindung mit Ihrem App Configuration-Speicher mithilfe der App Configuration-Anbieterbibliothek
  • Lesen der Schlüsselwerte Ihres App Configuration-Speichers mit der Konfigurationsanbieterbibliothek
  • Anzeigen einer Webseite mit den Einstellungen, die Sie in Ihrem App Configuration-Speicher konfiguriert haben

Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie Ihre ASP.NET Core-Web-App für das dynamische Aktualisieren der Konfigurationseinstellungen konfigurieren: