Freigeben über


Lernprogramm: Verwenden der dynamischen Konfiguration in einer Aspire-Lösung

Dieses Lernprogramm zeigt, wie Sie dynamische Konfigurationsupdates in einer Aspire-Lösung aktivieren können. Sie baut auf der Web-App auf, die in der Schnellstartanleitung eingeführt wurde. Ihre App nutzt die App Configuration-Anbieterbibliothek für die integrierten Funktionen zur Zwischenspeicherung und Aktualisierung der Konfiguration. Bevor Sie fortfahren, beenden Sie zuerst die Erstellung einer Aspire-Lösung mit Azure App Configuration.

In diesem Tutorial erfahren Sie, wie:

  • Richten Sie Ihre App ein, um die Konfiguration als Reaktion auf Änderungen in einem App-Konfigurationsspeicher zu aktualisieren.
  • Einfügen der neuesten Konfiguration in Ihre App.

Voraussetzungen

Schließen Sie die Schnellstartanleitung ab: Erstellen Sie eine Aspire-Lösung mit Azure App-Konfiguration.

Erneutes Laden von Daten aus App Configuration

  1. Navigieren Sie zum Verzeichnis des Web Projekts (erstellt in den Schritten "Voraussetzungen "). Führen Sie den folgenden Befehl aus, um das Microsoft.Azure.AppConfiguration.AspNetCore Nuget-Paket hinzuzufügen.

    dotnet add package Microsoft.Azure.AppConfiguration.AspNetCore
    
  2. Öffnen Sie AppHost.cs, und aktualisieren Sie die Methode, die Sie während des Schnellstarts hinzugefügt haben.

    builder.AddAzureAppConfiguration(
        "appconfiguration",
        configureOptions: options =>
        {
            // Load all keys that start with `TestApp:` and have no label.
            options.Select("TestApp:*", LabelFilter.Null);
            // Reload configuration if any selected key-values have changed.
            options.ConfigureRefresh(refreshOptions =>
                refreshOptions.RegisterAll());
        });
    

    Die Select Methode wird verwendet, um alle Schlüsselwerte zu laden, deren Schlüsselname mit TestApp beginnt und keine Bezeichnung aufweisen. Sie können die Select Methode mehrmals aufrufen, um Konfigurationen mit unterschiedlichen Präfixen oder Bezeichnungen zu laden. Wenn Sie einen App-Konfigurationsspeicher für mehrere Apps freigeben, hilft dieser Ansatz beim Laden der Konfiguration, die nur für Ihre aktuelle App relevant ist, anstatt alles aus Ihrem Store zu laden.

    Innerhalb der ConfigureRefresh Methode rufen Sie die RegisterAll Methode auf, den App-Konfigurationsanbieter anzuweisen, die gesamte Konfiguration neu zu laden, wenn eine Änderung in einem der ausgewählten Schlüsselwerte erkannt wird (die mit TestApp beginnen und keine Bezeichnung haben). Weitere Informationen zum Überwachen von Konfigurationsänderungen finden Sie unter Bewährte Methoden für die Aktualisierung der Konfiguration.

  3. Fügen Sie der Dienstsammlung Ihrer App die Middleware für die Azure App-Konfiguration hinzu.

    Aktualisieren Sie Program.cs mit dem folgenden Code.

    // Existing code in Program.cs
    // ... ...
    
    // Add Azure App Configuration middleware to the container of services.
    builder.Services.AddAzureAppConfiguration();
    
    var app = builder.Build();
    
    // The rest of existing code in program.cs
    // ... ...
    
  4. Rufen Sie die UseAzureAppConfiguration-Methode auf. Dadurch kann Ihre App die Konfiguration automatisch mithilfe der App Configuration-Middleware aktualisieren.

    Aktualisieren Sie Program.cs mit dem folgenden Code.

    // Existing code in Program.cs
    // ... ...
    
    var app = builder.Build();
    
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Error");
        app.UseHsts();
    }
    
    // Use Azure App Configuration middleware for dynamic configuration refresh.
    app.UseAzureAppConfiguration();
    
    // The rest of existing code in program.cs
    // ... ...
    

Anforderungsgesteuerte Konfigurationsaktualisierung

Die Konfigurationsaktualisierung wird durch die eingehenden Anforderungen an Ihre Web-App ausgelöst. Wenn ihre App im Leerlauf ist, tritt keine Aktualisierung auf. Wenn Ihre App aktiv ist, überwacht die App-Konfigurations-Middleware alle Schlüssel, die Sie für die Aktualisierung im ConfigureRefresh Aufruf registriert haben. Die Middleware wird bei jeder eingehenden Anforderung an Ihre App ausgelöst. Die Middleware sendet jedoch nur Anforderungen, um den Wert in App Configuration zu überprüfen, wenn das von Ihnen festgelegte Aktualisierungsintervall verstrichen ist.

  • Wenn eine Anforderung an die App-Konfiguration zur Änderungserkennung fehlschlägt, verwendet Ihre App weiterhin die zwischengespeicherte Konfiguration. Neue Versuche, nach Änderungen zu suchen, werden regelmäßig vorgenommen, während neue eingehende Anforderungen an Ihre App vorhanden sind.
  • Die Konfigurationsaktualisierung erfolgt asynchron zur Verarbeitung der eingehenden Anforderungen Ihrer App. Die eingehende Anforderung, die die Aktualisierung ausgelöst hat, wird nicht blockiert oder verlangsamt. Die Anforderung, die die Aktualisierung ausgelöst hat, erhält möglicherweise nicht die aktualisierten Konfigurationswerte, aber spätere Anforderungen erhalten neue Konfigurationswerte.
  • Um sicherzustellen, die Middleware auszulösen, rufen Sie die app.UseAzureAppConfiguration()-Methode so früh wie möglich in der Anforderungspipeline auf, damit eine andere Middleware sie nicht in Ihrer App überspringen kann.

Lokales Ausführen der App

  1. Führen Sie das AppHost Projekt aus. Wechseln Sie zum Aspire-Dashboard, und öffnen Sie die Web-App.

    Screenshot einer Web-App mit der ursprünglichen Nachricht aus der Azure App-Konfiguration.

  2. Navigieren Sie im Azure-Portal zum Konfigurations-Explorer Ihres App Configuration-Speichers, und aktualisieren Sie den Wert des folgenden Schlüssels.

    Key Wert
    TestApp:Settings:Message Willkommen bei Azure App Configuration - Aktualisiert!
  3. Aktualisieren Sie den Browser mehrmals. Wenn das Aktualisierungsintervall nach 30 Sekunden verstrichen ist, wird die Seite mit aktualisierten Inhalten angezeigt.

    Screenshot einer Web-App mit der aktualisierten Nachricht aus der Azure App-Konfiguration.

  4. Wechseln Sie zum Aspire-Dashboard, und öffnen Sie die strukturierten Protokolle. Sie sehen, dass die Ressource ein Protokoll mit der Nachricht "Konfiguration neu geladen." hat.

    Screenshot des Aspire-Dashboards mit strukturierten Protokollen.

Lokales Ausführen der App

  1. Führen Sie das AppHost Projekt aus. Wechseln Sie zum Aspire-Dashboard, und öffnen Sie die Web-App.

    Screenshot einer Web-App mit der ursprünglichen Nachricht aus der Azure App-Konfiguration.

  2. Wechseln Sie zur Emulatorbenutzeroberfläche, bearbeiten Sie den Wert des folgenden Schlüssels.

    Key Wert
    TestApp:Settings:Message Hallo von Azure App Configuration - Aktualisiert!
  3. Aktualisieren Sie den Browser mehrmals. Wenn das Aktualisierungsintervall nach 30 Sekunden verstrichen ist, wird die Seite mit aktualisierten Inhalten angezeigt.

    Screenshot einer Web-App mit der aktualisierten Nachricht aus der Azure App-Konfiguration.

  4. Wechseln Sie zum Aspire-Dashboard, und öffnen Sie die strukturierten Protokolle. Sie sehen, dass die webfrontend Ressource ein Log mit der Meldung "Konfiguration neu geladen." hat.

    Screenshot des Aspire-Dashboards mit strukturierten Protokollen.

Nächste Schritte

In diesem Lernprogramm haben Sie Ihre Aspire-App aktiviert, um Konfigurationseinstellungen dynamisch aus der App-Konfiguration zu aktualisieren. Um zu erfahren, wie Sie die dynamische Konfiguration in einer ASP.NET-Webanwendung aktivieren können, fahren Sie mit dem nächsten Lernprogramm fort: