Udostępnij przez


Przewodnik: stosowanie konfiguracji dynamicznej w rozwiązaniu Aspire

Ten samouczek pokazuje, jak włączyć dynamiczne aktualizacje konfiguracji w rozwiązaniu Aspire. Jest ona oparta na aplikacji internetowej wprowadzonej w przewodniku Szybki start. Aplikacja będzie wykorzystywać bibliotekę dostawcy App Configuration do wbudowanego buforowania i odświeżania konfiguracji. Przed kontynuowaniem najpierw ukończ tworzenie rozwiązania Aspire przy użyciu usługi Azure App Configuration.

W tym poradniku nauczysz się, jak:

  • Skonfiguruj aplikację, aby zaktualizować jej ustawienia w odpowiedzi na zmiany w magazynie App Configuration.
  • Wstrzyknij najnowszą konfigurację do twojej aplikacji.

Wymagania wstępne

Zakończ przewodnik Szybki start: Utwórz rozwiązanie Aspire z Azure App Configuration.

Ponowne ładowanie danych z usługi App Configuration

  1. Przejdź do katalogu projektu Web (utworzonego w krokach Krokach Wymagań Wstępnych ). Uruchom następującą komendę, aby dodać pakiet NuGet Microsoft.Azure.AppConfiguration.AspNetCore.

    dotnet add package Microsoft.Azure.AppConfiguration.AspNetCore
    
  2. Otwórz AppHost.cs, i zaktualizuj metodę AddAzureAppConfiguration dodaną podczas przewodnika „szybki start”.

    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());
        });
    

    Metoda Select służy do wczytywania wszystkich par klucz-wartość, których nazwa klucza rozpoczyna się od TestApp: i są bez etykiety. Metodę Select można wywołać więcej niż raz, aby załadować konfiguracje z różnymi prefiksami lub etykietami. Jeśli udostępniasz jeden sklep App Configuration z wieloma aplikacjami, takie podejście ułatwia ładowanie konfiguracji tylko dla bieżącej aplikacji zamiast ładowania wszystkich elementów ze sklepu.

    Wewnątrz metody ConfigureRefresh wywołasz metodę RegisterAll, aby poinstruować dostawcę konfiguracji aplikacji o ponownym załadowaniu całej konfiguracji ilekroć wykryje zmianę w dowolnej z wybranych wartości kluczy (rozpoczynające się od TestApp: i bez etykiety). Aby uzyskać więcej informacji na temat monitorowania zmian konfiguracji, zobacz Najlepsze rozwiązania dotyczące odświeżania konfiguracji.

  3. Dodaj oprogramowanie pośredniczące Azure App Configuration do kolekcji usług w aplikacji.

    Zaktualizuj Program.cs przy użyciu następującego kodu.

    // 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. Wywołaj metodę UseAzureAppConfiguration . Pozwala Twojej aplikacji na automatyczne aktualizowanie konfiguracji za pomocą oprogramowania pośredniczącego App Configuration.

    Zaktualizuj Program.cs przy użyciu następującego kodu.

    // 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
    // ... ...
    

Odświeżanie konfiguracji opartej na żądaniach

Odświeżanie konfiguracji jest wyzwalane przez przychodzące żądania do aplikacji internetowej. W przypadku bezczynności aplikacji nie zostanie wykonane żadne odświeżanie. Gdy aplikacja jest aktywna, oprogramowanie pośredniczące App Configuration monitoruje wszystkie klucze zarejestrowane do odświeżania w wywołaniu ConfigureRefresh . Oprogramowanie pośredniczące jest wyzwalane po każdym żądaniu przychodzącym do aplikacji. Jednak oprogramowanie pośredniczące będzie wysyłać żądania tylko w celu sprawdzenia wartości w usłudze App Configuration po upływie ustawionego interwału odświeżania.

  • Jeśli żądanie do usługi App Configuration dotyczące wykrywania zmian nie powiedzie się, aplikacja będzie nadal używać buforowanej konfiguracji. Nowe próby sprawdzenia zmian będą podejmowane okresowo, gdy pojawią się nowe żądania do Twojej aplikacji.
  • Odświeżanie konfiguracji odbywa się asynchronicznie, niezależnie od przetwarzania żądań przychodzących aplikacji. Nie spowoduje to zablokowania ani spowolnienia żądania przychodzącego, które wyzwoliło odświeżanie. Żądanie, które wyzwoliło odświeżanie, może nie uzyskać zaktualizowanych wartości konfiguracji, ale późniejsze żądania otrzymają nowe wartości konfiguracji.
  • Aby upewnić się, że oprogramowanie pośredniczące zostało wyzwolone, wywołaj metodę app.UseAzureAppConfiguration() odpowiednio wcześnie w potoku żądania, aby żadne inne oprogramowanie pośredniczące nie pominęło go w aplikacji.

Lokalne uruchamianie aplikacji

  1. Uruchom projekt AppHost. Przejdź do pulpitu nawigacyjnego Aspiruj i otwórz aplikację internetową.

    Zrzut ekranu przedstawiający aplikację internetową z oryginalnym komunikatem z usługi Azure App Configuration.

  2. W portalu Azure przejdź do Eksploratora konfiguracji magazynu konfiguracji aplikacji i zaktualizuj wartość następującego klucza.

    Key Wartość
    TestApp:Settings:Message Witaj z usługi Azure App Configuration — zaktualizowano!
  3. Odśwież przeglądarkę kilka razy. Gdy interwał odświeżania upłynie po 30 sekundach, strona będzie wyświetlana ze zaktualizowaną zawartością.

    Zrzut ekranu przedstawiający aplikację internetową ze zaktualizowanym komunikatem z usługi Azure App Configuration.

  4. Przejdź do pulpitu nawigacyjnego Aspiruj i otwórz dzienniki ustrukturyzowane. Zobaczysz, że webfrontend zasób ma dziennik z komunikatem "Konfiguracja ponownie załadowana".

    Zrzut ekranu przedstawiający pulpit nawigacyjny Aspire przedstawiający dzienniki ustrukturyzowane.

Lokalne uruchamianie aplikacji

  1. Uruchom projekt AppHost. Przejdź do pulpitu nawigacyjnego Aspiruj i otwórz aplikację internetową.

    Zrzut ekranu przedstawiający aplikację internetową z oryginalnym komunikatem z usługi Azure App Configuration.

  2. Przejdź do interfejsu użytkownika emulatora, edytuj wartość następującego klucza.

    Key Wartość
    TestApp:Settings:Message Witaj z usługi Azure App Configuration — zaktualizowano!
  3. Odśwież przeglądarkę kilka razy. Gdy interwał odświeżania upłynie po 30 sekundach, strona będzie wyświetlana ze zaktualizowaną zawartością.

    Zrzut ekranu przedstawiający aplikację internetową ze zaktualizowanym komunikatem z usługi Azure App Configuration.

  4. Przejdź do pulpitu nawigacyjnego Aspiruj i otwórz dzienniki ustrukturyzowane. Zobaczysz, że webfrontend zasób ma dziennik z komunikatem "Konfiguracja ponownie załadowana".

    Zrzut ekranu przedstawiający pulpit nawigacyjny Aspire przedstawiający dzienniki ustrukturyzowane.

Dalsze kroki

W tym samouczku włączono aplikację Aspire w celu dynamicznego odświeżania ustawień konfiguracji z poziomu usługi App Configuration. Aby dowiedzieć się, jak dodać flagę funkcji do aplikacji Aspire, przejdź do następnego samouczka.